30天自制操作系统(day2)

第2天:汇编语言学习与Makefile入门

**一、实验主要内容
1、内容1:**文本编译器notepad++下载。在网上另外找到的编译器,然后在群里进行了分享,网址为https://dl.pconline.com.cn/html_2/1/117/id=10699&pn=0.html。直接选择本地下载,注意设置语言。点击就可以使用,界面如下(太简洁了吧…)
在这里插入图片描述
用他来打开一个nas文件,如helloos3中的helloos.nas看一下:
打开之后可以看到代码部分可以正常显示,但注释部分是日文,可能是因为这款编译器是由日本开发的,不影响使用。
在这里插入图片描述
**2、内容2:**学习相关知识。本次实验的主要核心内容是学习部分汇编指令,helloos.nas中的程序核心部分如下:
在这里插入图片描述
其中entry,putloop,fin,msg用于指定jmp指令的跳转目的地址
这里有部分新指令:
ORG指令:来源于”origin”,这个指令告诉nask,程序要从指定的这个地址(0x7c00)开始,把程序装载带内存中的这个地址。$代表将要读入的内 存地址。
JMP指令:相当于C语言的goto语句,跳转指令。
MOV指令:赋值,”MOV AX,0” 相当于” AX=0; ”,要求源数据和目的数据必须位数相同。
INT指令:软件中断指令,BIOS程序在电脑出厂时组装在主板上的ROM里,里面写入了操作系统开发人员经常用到的程序(各种函数的集合)。INT就是用来调用这些函数的指令,INT后面跟数字,不同的数字可以调用不同的函数。
HLT指令:停止指令,让CPU进入待机状态,任一操作都可以唤醒CPU。
以及部分寄存器的讲解:
16位具有代表性的寄存器,前四个寄存器的X代表拓展(extend)。其次,下面寄存器的排列顺序是按照机器语言中的寄存器的编号排列的。这八个寄存器全部合起来只有十六个字节,CPU把全部的寄存器用上也只能存储十六个字节:
AX—accumulator , 累加寄存器
CX—counter , 计数寄存器(这个我在上节实验课的时候就在创新点部分用到了)
DX—data , 数据寄存器
BX—base , 基址寄存器(用于保护内存)
SP—stack pointer , 栈指针寄存器
BP—base pointer , 基址指针寄存器
SI—source i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值