请老师指点关于检测点3.1的问题。
检测点3.1(2) 内存中的情况如图3.6所示各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0;① 写出CPU执行的指令序列(用汇编指令写出)。② 写出CPU执行每条指令后,CS、IP和相关寄存器的数值。③ 再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?图3.6内存情况示意指令序列CSIPDSAXBX
初始值2000h0000
1mov ax,6622h2000h3h06622h0
2jmp 0ff0:0100ff0h100h06622h0
3mov ax,2000hff0h103h02000h0
4mov ds,axff0h105h2000h2000h0
5mov ax,ff0h108h2000hc389h0
6mov ax,ff0h10bh2000hea66h0
我的问题是:执行了jmp 0ff0:0100后,就应该执行0ff0:0100指向的指令,但是怎么会去执行1000:0指向的mov ax,2000H指令呢?有点不明白?请老师们指点一下。 0ff00+100=10000 物理地址,物理地址,物理地址,物理地址啊。你懂了吗? 呵呵,差点忘了0ff00+100=10000的,搞半天是这么回事,谢谢两位老师! 0FF0:0100 = 1000:0 吧0ff0 * 16 +0100 一个意思 jmp跳转呀 你跳转到另一个物理地址了 0ff0乘以16在加上0100等于10000这个物理地址,当然执行它啦
页:
[1]