【注】ds此时为0001H
AX F080
BX 30F0
AX 30F0
AX F080
BX EF30
AX DFC0
AX 0000
AL 30
BX 0000
BL 13
AL 43
- [doing1984] 我做错了~~~! mov ax,1 mov ds,ax 04/18 16:54
- [doing1984] 3.3字的传送写得很清楚了“因为8086CPU是16位结构,有16根数据线.......” 04/18 15:49
- [doing1984] 看了下别人的答案,说是修改了四次了,我之前也是想着四次的,但是我觉得执行指令后IP是自己移动的,不是 04/18 10:56
- [doing1984] 我觉得我这种解释比书说的“左移4位”要好理解一些,书上写的进制好混乱,看得我一头雾水 04/17 20:15
- [doing1984] 谢谢游客,反正它一次读一条指令就对了,不知道书后面有没有具体解释 09/03 08:21
- [游客] 十六进制10001H不是10H(16)的整数倍啊。 段地址最后一位如果为0,说明SA*10H=** 08/31 15:25
- [游客] 应该与源代码中指令操作符有关系,特定的操作符号集合决定了这个指令将被编译成多少个字节码,当然也包括指 08/31 15:15
- [游客] 不是的,你看到的“;”是字符层面上的,而机器指令是2进制层面的。你的源代码经过编译器的编译才能变成机 08/31 15:12
- [doing1984] “这不是一个16位数”写错了,应该是这不是一个16的倍数 08/31 09:08
- [doing1984] 上面那个写错了,20000H-FFFFH=65537 08/31 09:04
[ doing1984 发表于 2013-04-18 16:54 ]
我做错了~~~!
mov ax,1
mov ds,ax 此时内存地址为00010
mov ax,[0000] AX=2662H
mov bx,[0001] BX=E626H
mov ax,bx AX=E626H
mov ax,[0000] AX=2662H
mov bx,[0002] BX=D6E6H
add ax,bx AX=FD48H
add ax,[0004] AX=C977H
mov ax,0 AX=0000H
mov al,[0002] AX=00E6H
mov bx,0 BX=0000H
mov bl,[000c] BX=0026H
add al,bl BX=00CH