shuiyu 发表于 2017-6-27 17:15:41

《零基础入门学习汇编语言》检测点3.1

本帖最后由 shuiyu 于 2017-6-27 17:24 编辑

小白刚学,不对的请各位大佬指正,谢谢{:10_254:}

检测点3.1

(1)
由于页面排版有点问题,我还是贴图吧{:10_285:}

(2) 内存中的情况如图3.6所示

各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;

①   写出CPU执行的指令序列(用汇编指令写出)。

②   写出CPU执行每条指令后,CS、IP和相关寄存器的数值。

③   再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?

根据图3.6可得:
mov ax,6222H                CS=2000H           IP=3        DS=1000H        AX=6222H        BX=0

jmp 0ff0:0100                CS=FF0H                IP=100        DS=1000H        AX=6222H        BX=0

mov ax,2000H                CS=FF0H                IP=103        DS=1000H        AX=2000H        BX=0

mov ds,ax                        CS=FF0H                IP=105        DS=2000H        AX=2000H        BX=0

mov ax,                CS=FF0H                IP=108        DS=2000H        AX=C389H        BX=0

mov ax,                CS=FF0H                IP=10B        DS=2000H        AX=EA66H        BX=0

jmp那里直接跳转到了0ff0:0100(其实就是10000H),所以序列变成了这样。
对了一下答案,发现答案有一个地方错了,就是初始值时它把DS=0了,题目是DS=1000H。



本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢{:10_254:}

谢谢小甲鱼带来的视频教程,感谢!! {:10_303:}

比特阿尔法 发表于 2017-12-30 00:53:51

谢谢楼主

shuiyu 发表于 2017-12-30 17:14:25

比特阿尔法 发表于 2017-12-30 00:53
谢谢楼主

客气,一起加油!

秋雪冬枫 发表于 2018-1-23 21:53:57

楼主威武

nihility_z 发表于 2019-7-15 09:05:47

大佬,请问一下,为什么ds的初始值会是0啊,最开始给的条件不是赋值1000了吗,谢谢。

老张爱编程 发表于 2019-10-4 18:21:28

厉害

XT孓珏 发表于 2020-2-4 14:49:44

打卡
页: [1]
查看完整版本: 《零基础入门学习汇编语言》检测点3.1