30天自制操作系统Day 2

一、汇编语言指令

DB(define byte)往文件里写入1个字节的指令
DW(define word)往文件里写入一个字(两个字节)的指令
DD(define double-word)往文件里写入两个字的指令
RESB(reserve byte)把指定的地址空出来并自动填上0x00
ORG(origin)把程序装载到内存中的指定地址
JMP(jump)跳转到指定位置

fin:			;标签的声明
	HLT
	JMP	fin		;无限循环

MOV(move)赋值
ADD(add)加法指令
CMP(compare)比较指令
JE(jump if equal)条件跳转指令

CMP AL, 0
	JE	fin
;相当于
if (AL==0){
	goto fin; } 

INT(interrupt)中断指令
HLT(halt)让CPU进入待机状态,只要外部发生变化,比如按下键盘,或是移动鼠标,CPU就会醒过来,继续执行程序



二、寄存器

16位寄存器
AX(accumulator)累加寄存器
CX(counter)计数寄存器
DX(data)数据寄存器
BX(base)基址寄存器
SP(stack pointer)栈指针寄存器
BP(base pointer)基址指针寄存器
SI(source index)源变址寄存器
DI(destination index)目的变址寄存器
其中带“”的寄存器都可以用来指定地址

AX、CX、DX、BX都可以分为高位和低位两个8位寄存器
AL(accumulator low)累加寄存器低位
CL…
DL
BL
AH(accumulator high)累加寄存器高位
CH
DH
BH

32位寄存器
EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI

段寄存器(16位)
ES(extra segment)附加段寄存器
CS(code segment)代码段寄存器
SS(stack segment)栈段寄存器
DS(data segment)数据段寄存器
FS(segment part 2)没有名称
GS(segment part 3)没有名称



三、关于make.exe和Makefile

make是GNU项目组的人开发的一个工具,利用make,我们可以将大型的开发项目分解成为多个更易于管理的模块,make 会在当前目录下找名字叫“Makefile”或“makefile”的文件,makefile定义了一个文件的依赖关系,makefile就像Shell脚本一样,其中可以执行操作系统的命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值