chenyuqun 发表于 2015-5-23 22:48:28

汇编 王爽 检测点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: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=2662H mov bx, BX=E626H mov ax,bx AX=E626H mov ax, AX=2662H mov bx, BX=D6E6H add ax,bx AX=FD48H add ax, AX=2C14H mov ax,0 AX=0000H mov al, AX=00E6H mov bx,0 BX=0000H mov bl, BX=0026H add al,bl AX=000CH
疑惑:add ax, AX=2C14HAX为什么等于2C14H

qxinhai 发表于 2015-5-24 09:45:00

物理地址=段地址*16+偏移地址
ds中的值是0001H,偏移地址是0004H,那么物理地址就是0001H*16+0004H=0014H....那么此时值为2ECC,与AX=FD48H相加等于12C14,因为是16位,所以“舍弃”掉最高位,得2C14.
页: [1]
查看完整版本: 汇编 王爽 检测点3.1疑惑