首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请问,汇编小程序改错

2012-02-25 
请教,汇编小程序改错!程序的主要思路是:程序运行时,数据存放在cs:0~cs:15单元中,共八个字单元。依次将这

请教,汇编小程序改错!
;程序的主要思路是:程序运行时,数据存放在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
codesgends
end   start

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

热点排行