怎样写一个简单的操作系统(6)

时间:2026-01-15

怎样写一个简单的操作系统

我们看看这些指令的更多一些细节,思考如下的汇编代码片断:

mov bx, 1000h

mov ax, [bx]

cmp ax, 50

jge label

...

label:

mov ax, 10

我们来看看这几条指令,第一条指令,把1000h传送到寄存器bx中。然后,

第二条指令是把bx寄存器指向的内存单元的数据传送到ax寄存器中,如果我们仅仅使用mov ax, bx,那么它的意思就是简单的把数据1000h传送到ax寄存器中,但是在bx上使用了方括号之后,意义就变化了,不是简单的把数据从bx传送到ax了,而是传送bx所指向的内存的内容到ax寄存器中。具体到这条指令,bx中是1000h,那么它的意思就是说把内存地址1000h中的数据传送到ax寄存器中。

因此,如果内存地址1000h中存放的数据是37,那么执行完上面的第二条指令之后,ax中存放的数据将是37,接下来,将是使用cmp指令对ax中的数据和50(十进制数50,注意,并没有h后缀)进行比较,之后的jge指令将作用在cmp的比较结果上,因为cmp指令执行之后,会设置标志寄存器的某些标志位,指令jge label的意思就是说,如果之前的比较结果是大于或者等于则跳转到label标签的位置继续执行,因此,如果ax寄存器中的数据不比50小的话,程序就跳转到label标签处执行,否则,程序继续执行“…”部分的代码。

最后一点:您可以使用db(字节定义)标识将数据插入到程序中。与数据库程序中插入数据(定义字节)指令。例如,定义一个字符串,可以使用一段以0结尾的连续字节来表示。如下所示:

怎样写一个简单的操作系统(6).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219