(1)已知内存单元内容,程序执行后相关寄存器的值。
mov ax,1
mov ds,ax
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=2c14h
mov ax,0 ax=0000h
mov al,[0002] ax=00e6h
mov bx,0 bx=0000h
mov bl,[000c] bx=0026h
add al,bl ax=000ch
我还真是粗心呢,第一次做完了,看到“提示,注意ds的设置”,才发现自己都做错了!!又重新做了一遍。
(2)
执行序列及寄存器数值:
mov ax,6622h
读出后,cs=2000h,ip=0003h
执行后,ax=6622h
jmp 0ff0:0100
读出后,cs=2000h,ip=0008h
执行后,cs=0ff0h,ip=0100h
mov ax,2000h
读出后,cs=0ff0h,ip=0103h
执行后,ax=2000h
mov ds,ax
读出后,cs=0ff0h,ip=0105h
执行后,ds=2000h
mov ax,[0008]
读出后,cs=0ff0h,ip=0108h
执行后,ax=c389h
mov ax,[0002]
读出后,cs=0ff0h,ip=010bh
执行后,ax=ea66h
数据和程序在内存中没有区别,都是二进制数据。cs:ip指向单元中的内容,cpu当做指令来执行。当然,如果通过设置ds和偏移地址找到这些单元,也可以当做数据来处理。
- [游客] 感谢 11/15 22:10
- [游客] 把:DD 5937000,改成:DD 4294967295,你的错误,立刻就暴露出来。呵呵 05/19 18:30
- [游客] 计算人均时,是DD型除以DW型。把DD型的最大值代进去,你的程序,就溢出了。 05/19 18:28
- [游客] 注意不溢出的除法。 05/19 18:25
- [游客] 老师好啊~ 06/28 11:01
- [longphui] 谢谢 09/03 20:10
- [longphui] 谢谢 09/03 16:23
- [longphui] 谢谢 09/02 15:26
- [longphui] 谢谢 09/02 09:13
- [sissim] 恩恩,谢谢指正 01/11 18:24
- [even3] 亲,你好。。。这边有一个汇编语言程序,但是就是不知道哪里出了问题,问了很多人,都不知道想麻烦您一下, 05/16 20:48
- [mcjfo] 楼主可以帮我解决这个问题吗?谢谢! 为什么它会跳过JMP DD 指令不执行啊 小弟搞了好久抖没 06/08 06:50
[ qingtianyanling 发表于 2009-10-23 18:12 ]
呵呵 咱们一起学啊 我也刚起步不久啊
[ sissim 发表于 2009-10-24 00:06 ]
好啊好啊,呵呵
[ longphui 发表于 2012-09-03 20:10 ]
谢谢