|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 郝凡呀 于 2021-3-6 11:40 编辑
(1)在Debug中,用“d0:01f”查看内存,结果如下。
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000: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,[0000] AX=2662
mov bx,[0001] BX=E626
mov ax,bx AX=E626
mov ax,[0000] AX=2662
mov bx,[0002] BX=D6E6
add ax,bx AX=FD48
add ax,[0004] AX=2C14
mov ax,0 AX=0000
mov al,[0002] AX=00E6
mov bx,0 BX=0000
mov bl,[000C] BX=0026
add al,bl AX=000C
提示,注意ds的设置。
各寄存器的初始值CS=2000H,IP=0,DS=1000H,AX=0 BX=0
①写出cpu执行指令的序列,写出CPU执行各条指令后,CS、IP和相关寄存器中的数据。
mov ax,6622H IP=3 CS=2000H ax=6622
jmp offo:0100 CS=2000H
mov ax,2000H IP=6 DS=1000H ax=2000H
mov ds,ax ds=2000H IP=3
mov ax,[0008] ax=C389 IP=5
mov bx,ax bx=C389 CS=1000H IP=8
mov ax,[0002] ax=EA66
数据和程序没有区别,ds指向的是数据,CS:IP指向的是代码。
其实这个IP的变化我并不是很清楚,望赐教。
如有错误,望您可以不吝赐教,谢谢!
|
|