郝凡呀 发表于 2021-2-17 17:07:36

检测点3.1

本帖最后由 郝凡呀 于 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,AX=2662
mov bx,BX=E626
mov ax,bx      AX=E626
mov ax,AX=2662
mov bx,BX=D6E6
add ax,bx         AX=FD48
add ax,   AX=2C14
mov ax,0          AX=0000
mov al,   AX=00E6
mov bx,0          BX=0000
mov bl,   BX=0026
addal,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,ax=C389IP=5
mov bx,ax      bx=C389CS=1000H IP=8
mov ax,ax=EA66

数据和程序没有区别,ds指向的是数据,CS:IP指向的是代码。
其实这个IP的变化我并不是很清楚,望赐教。
如有错误,望您可以不吝赐教,谢谢!{:5_110:}

xiehoukey 发表于 2021-3-2 20:07:36

萌新刚学感觉倒数第二句mov bl,这一句的结果应该是   BX=0026

郝凡呀 发表于 2021-3-6 11:41:02

xiehoukey 发表于 2021-3-2 20:07
萌新刚学感觉倒数第二句mov bl,这一句的结果应该是   BX=0026

已改正,谢谢!{:5_110:}

1679837736 发表于 2021-3-19 20:55:25

兄台第二题的这个mov bx,ax      bx=C389CS=1000H IP=8 机器应该算不到这里的吧

freedomOO 发表于 2021-3-30 22:19:59

谢谢,你给与的参考

疯七天南 发表于 2021-5-14 19:29:25

多谢提供参考

hhdxzz 发表于 2021-5-31 16:17:14

物理地址=段地址*16+偏移地址
页: [1]
查看完整版本: 检测点3.1