10.12 照书上写的代码为什么运行不出来,求解
assume cs:code,ds:data,ss:stackdata segment
db 'word',0
db 'unix',0
db 'wind',0
db 'good',0
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov sp,16
mov cx,4
s:mov si,bx
call capital
add bx,5
loop s
mov ax,4c00h
int 21h
capital:push cx
push si
change:mov cl,
mov ch,0
jcxz ok
and byte ptr ,11011111b
inc si
jmp short change
ok: pop si
pop cx
ret
code ends
end start
求解,哪里错了 mov sp,16这句之前 你定义堆栈段了吗
mov ax,stack
mov ss,ax
小马过河 发表于 2012-2-8 17:32 static/image/common/back.gif
mov sp,16这句之前 你定义堆栈段了吗
mov ax,stack
mov ss,ax
很明显他定义了。
你的代码没有问题。
你可以“g” 到 int 21h的地址,然后查看内存。
或者把你的堆栈段改大点。 嗯,我没有把stack的地址传给ss,导致了栈的数据覆盖了data的数据,谢两位大虾了{:5_110:}
页:
[1]