当前位置: 代码迷 >> 汇编语言 >> 请问,汇编小程序改错
  详细解决方案

请问,汇编小程序改错

热度:8884   发布时间:2013-02-26 00:00:00.0
请教,汇编小程序改错!
;程序的主要思路是:程序运行时,数据存放在cs:0   ~cs:15单元中,
;共八个字单元。依次将这八个字单元中的数据入栈,然后出栈到这8个字单元中
;从而实现数据的逆序存放.
;问题是我在dos下用debug调试的时候,发现程序运行的结果不对
;及没有按照完全按逆序存放到数组中,请指教

assume   cs:codesg
codesg   segment
dw   0123h,   0456h,   0789h,   0abch,   0defh,   0fedh,   0cbah,   0987h
dw   0   ,   0,   0,   0,   0,   0,   0,   0

start:
mov   ax,   codesg;
mov   ss,   ax
mov   sp,   32
mov   bx,   0
mov   cx,   8

            s:
push   cs:[bx]
add   bx,   2
loop   s

mov   bx,   0
mov   cx,   8

          s0:
pop   cs:[bx]
add   bx,   2
loop   s0

mov   ax,   4c00h
int   21h
codesg ends
end   start

------解决方案--------------------------------------------------------
你怎么知道cs:[bx](mov bx,0)一定就是0123h的地址?
我建议你先用lea在bx中装入0123h的偏移址,之后再用cs:[bx]。试一下...
------解决方案--------------------------------------------------------
同意楼上看法
  相关解决方案