smartly 发表于 2012-3-28 15:16:25

检测点3.1问题

检测点3.1(1)在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值mov ax,1 mov ds,ax mov ax,ax= 2662H为什么AX等于2662呢?

smartly 发表于 2012-3-28 15:44:56

发错了,应该是这个:实验2 用机器指令和汇编指令编程

(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

mov ax,ffff

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100



mov ax,    //AX为什么ax= 5BEAH ?

bob 发表于 2012-3-28 16:15:19

因为那是AX,而不是AL或AH,是字型,不是字节型

smartly 发表于 2012-3-28 16:17:53

5BEA是从哪里来的?

smartly 发表于 2012-3-28 16:19:11

上面指令中又没有5BEA这个地址,AX怎么会得到他呢?

bob 发表于 2012-3-28 16:26:59

查FFFF:0000中是什么

莫名其妙 发表于 2012-3-28 16:27:47

smartly 发表于 2012-3-28 16:19 static/image/common/back.gif
上面指令中又没有5BEA这个地址,AX怎么会得到他呢?

你看的地方不对吧
mov ax,ffff
mov ds,ax这两条 给数据段设置成ffff

mov ax,2200

mov ss,ax

mov sp,0100   上3条这是设置栈段



mov ax,    //AX为什么ax= 5BEAH
这里是看ffff:0的内容 你执行到 mov ds,ax 然后 -d ffff:0    看看ffff:0 内容是什么?   然后将第一个字节内容给ax

bob 发表于 2012-3-28 16:29:26

为什么代码段和数据段的长度N要小于64KB

smartly 发表于 2012-3-28 16:46:27

8086最大是2的16次,呵呵,明白了,谢谢!
页: [1]
查看完整版本: 检测点3.1问题