程序如下:
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start: mov si,0
mov cx,8
s: mov ax,a[si]
add word ptr b,ax
adc word ptr b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
用debug查看结果时,d命令,段地址为当前ds的内容加10h(PSP)
I:\mymasm>debug p289.exe
-u
140C:0014 BE0000 MOV SI,0000
140C:0017 B90800 MOV CX,0008
140C:001A 2E CS:
140C:001B 8B840000 MOV AX,[SI+0000]
140C:001F 2E CS:
140C:0020 01061000 ADD [0010],AX
140C:0024 2E CS:
140C:0025 8316120000 ADC WORD PTR [0012],+00
140C:002A 83C602 ADD SI,+02
140C:002D E2EB LOOP 001A
140C:002F B8004C MOV AX,4C00
140C:0032 CD21 INT 21
-g 2f
AX=0008 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0010 DI=0000
DS=13FC ES=13FC SS=140C CS=140C IP=002F NV UP EI PL NZ AC PO NC
140C:002F B8004C MOV AX,4C00
-d 140c:0 1f
140C:0000 01 00 02 00 03 00 04 00-05 00 06 00 07 00 08 00 ................
140C:0010 24 00 00 00 BE 00 00 B9-08 00 2E 8B 84 00 00 2E $...............
-q
- [游客] 感谢 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