主题:[讨论]这段代码pop指令不能执行!
noviceJ
[专家分:0] 发布于 2007-05-22 09:58:00
我初涉汇编,发这样的帖,万望大虾不要骂我[em3]
assume ss:stacksg, cs:codesg
stacksg segment
db 77H,65H,6cH,63H,56H,45H
stacksg ends
codesg segment
start:mov ax,stacksg
mov ss,ax
mov sp,0
pop ax
pop ax
mov ax,4c00H
int 21H
codesg ends
end start
1这段code执行第一条 pop ax 时 ax =6577H,
可是却无法执行第二条 pop 指令
2debug 该可执行程序时,能看到 ss:0中的内容如下:
77 65 6c 63 56 45
也就是说用数据开辟栈空间时,是按照 低地址 -〉 高地址,即栈底 -〉栈顶
依次存放数据的,可是第二条 pop 指令为何不能执行呢......
最后更新于:2007-05-22 10:00:00
回复列表 (共3个回复)
沙发
noviceJ [专家分:0] 发布于 2007-05-24 09:01:00
我问这么弱的问题,还是请各位大虾骂我吧,请不要点击一下不吭一声就走,但是第二条pop指令就是不能执行啊............
板凳
freeeerf [专家分:5440] 发布于 2007-05-25 22:38:00
这样给SS赋值的情况可不多,我都没遇到过.
你的程序有些古怪,我复制下来后运行是下面的结果(后半部分):
t.asm(80) : error A2044: invalid character in file
t.asm(81) : error A2044: invalid character in file
t.asm(82) : error A2044: invalid character in file
t.asm(83) : error A2044: invalid character in file
t.asm(84) : error A2044: invalid character in file
t.asm(85) : error A2044: invalid character in file
t.asm(86) : error A2044: invalid character in file
t.asm(87) : error A2044: invalid character in file
t.asm(88) : error A2044: invalid character in file
t.asm(89) : error A2044: invalid character in file
t.asm(90) : error A2044: invalid character in file
t.asm(91) : error A2044: invalid character in file
t.asm(92) : error A2044: invalid character in file
t.asm(93) : error A2044: invalid character in file
t.asm(94) : error A2044: invalid character in file
t.asm(95) : error A2044: invalid character in file
t.asm(96) : error A2044: invalid character in file
t.asm(97) : error A2044: invalid character in file
t.asm(98) : error A2044: invalid character in file
t.asm(99) : error A2044: invalid character in file
t.asm(100) : error A2044: invalid character in file
t.asm(101) : error A2044: invalid character in file
t.asm(102) : fatal error A1012: error count exceeds 100; stopping assembly
3 楼
jslfl [专家分:80] 发布于 2007-05-27 12:32:00
会不会是堆栈指针溢出了啊
我来回复