第三章 检测点3.1
1.在debug中用"d 0:0 1f"查看内存,结果如下:
0000:0000 70 80 f0 30 ef 60 30 e2-00 80 80 12 66 20 22 60
0000:0000 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
(1)汇编指令的序列
开始cs = 2000h, ip = 0 ,ds =1000h ,ax = 0, bx =0
mov ax,6622h cs = 2000h, ip = 3 ,ds =1000h ,ax = 0h, bx =0
jmp 0ff0:0100 cs = 2000h, ip = 8 ,ds =1000h ,ax = 6622h, bx =0
mov ax,2000h cs = 0ff0h, ip = 0103h ,ds =1000h ,ax = 2000h, bx =0
mov ds,ax cs = 0ff0h, ip = 0105h ,ds =2000h ,ax = 2000h, bx =0
mov ax,[0008] cs = 0ff0h, ip = 0108h ,ds =2000h ,ax = c389h, bx =0
mov ax,[0002] cs = 0ff0h, ip = 010Bh ,ds =2000h ,ax = EA66h, bx =0
数据和程序没有区别。数据是DS指向的位置,程序是CS:IP指向的位置
- [younggay] to 1楼: 不好意思,我看错了。你说得对,不过,由于这个题目是在debug下面查看的,涉及到中断 04/03 10:36
- [younggay] 不同意一楼的。 sp是栈顶指针,不是栈顶的内容,pop ax 相当于 mov ax,ss:[s 04/03 10:30
- [游客] 博主的结果有问题,add sp,10执行后 sp=0a 栈顶内容为 fe00,那么pop ax 04/03 09:57
- [xhy2107] 谢谢 04/02 22:44
- [游客] 根据一楼的解释,则 0001H*10H+FFFFH=1000FH 偏移地址最大为FFFFH。 04/01 14:54
- [游客] 回答正确。 04/01 14:51
- [xhy2107] 谢谢 辛苦你了哦 03/27 21:04
- [xhy2107] 还是不明白 03/27 21:03
- [xhy2107] 谢谢 crazyman 03/27 21:00
- [xhy2107] 谢谢 呵呵 大家加油 03/27 20:59