注册 登录
编程论坛 汇编论坛

为什么此程序得一次性执行才能得到AX=3

linfengye 发布于 2007-07-01 17:31, 884 次点击
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:0
inc ax
inc ax
inc ax
code ends
end start


本人初学汇编,有好多东西都不太懂,望各位大侠帮俺一把

请问一下:1,此题中的MOV SS,AX是不是将SS的段地址值移给AX,还是说将SS的完整地址移给AX
2,为什么此题用DEBUG时,在单步调试和一次性执行完的两种情况下,AX是不同的值。
3,我尝试着在里面的MOV DS,AX前加一条INC AX的指令,为什么加上后我一用G命令把整个程序一次性执行时,DEBUG会自动跳回CMD的界面

谢谢了!

3 回复
#2
菜鸟上路2007-07-01 18:39
1、将段地址赋给SS
2、单步执行只是看到下一次状态的值,一次执行完是程序执行完的值
3、因为段值跟你定义的不一样
#3
zez26262007-07-01 19:50

拿来的调用呀!怪了!本人看不懂

#4
linfengye2007-07-03 21:55
谢谢版主了!~
1