回 帖 发 新 帖 刷新版面

主题:[讨论]这段代码pop指令不能执行!

我初涉汇编,发这样的帖,万望大虾不要骂我[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 指令为何不能执行呢......

回复列表 (共3个回复)

沙发

我问这么弱的问题,还是请各位大虾骂我吧,请不要点击一下不吭一声就走,但是第二条pop指令就是不能执行啊............

板凳

这样给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 楼


会不会是堆栈指针溢出了啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册