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

一个简单程序出错有关问题,求解

2012-02-03 
一个简单程序出错问题,求解总是报错,代码如下,请帮忙定位问题,谢谢!assume cs:coded7,ds:data,ss:stackdat

一个简单程序出错问题,求解
总是报错,代码如下,请帮忙定位问题,谢谢!

assume cs:coded7,ds:data,ss:stack

data segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh
data ends

stack segment
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
stack ends

coded7 segment
start:

mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov bx,0
mov cx,8

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

mov bx,0
mov cx,8

s1:
pop ds:[bx]
add bx,2
loop s1

mov ax,4c00h
int 21h

coded7 ends
end start


[解决办法]
多定义点堆栈,太短了吧
[解决办法]
我复制了一下你的代码,在我的机上运行了一下,没有问题
[解决办法]
这个程序,直接运行问题不大,或者说出错几率较小;如果是单步调试,则几近必然。问题就在 #3楼 朋友所说的堆栈太小,被程序中的显式 push 指令完全占用,就没有适当的空间给中断了,尤其是中断时所需要的那连续的 3 个 word 空间,其它的 push/pop 等还可以通过 sp 的回绕来应付。

热点排行