您的位置:首页 > 其它

30天自制操作系统day2

2015-04-18 10:36 246 查看
这一章主要讲解汇编基础知识和Makefile的使用

ORG指令:指定开始执行程序的时候,把程序装载到内存的哪个地址。如果不指定,则默认从0x0开始,会与BIOS程序发生冲突。程序helloos.nas中,指定的是0x7c00。这是因为规定的启动区内容装载地址是0x00007c00-0x00007dff。

AX,CX,BX等寄存器,在源代码中使用时看不出差别,但本质上是不一样的。AX适合用来计算。例如:

ADD CX, 0x1234
ADD AX, 0x1234


汇编成机器语言时,使用CX的是一个4字节的指令,而使用AX的是一个3字节的指令。

此外,CX是为方便计数而设计的(LOOP循环时作为循环次数),BX适合计算内存地址的基点。

AX,BX,CX,DX寄存器是16位的,每个包含高位和低位(如AL,AH),32位的机器中有32位的寄存器,如EAX,EBX,ECX,EDX。

JMP指令:JMP后面可以加label或内存地址,本质是一样的。在汇编语言中label都表示内存地址,是由编译器根据ORG指令计算出来的。

从内存读/写数据:例如

MOV BYTE [123], AX
MOV AX, WORD [BX]


注意可以放在[]中指定内存地址的寄存器只有BX,BP,SI,DI。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: