自己写实验十,出现了无法解决的问题
debug发现执行第一条指令后,栈的数据发生了变化.导致调用子程序时出栈错误.不知道怎么回事.源代码如下------------------------------------------------------------------------
assume cs:code,ds:data,ss:stack
data segment
db 'Hello world',0
data ends
stack segment stack
db 8 dup(0)
stack ends
code segment
start:
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
call show_str
mov ax,4C00H
int 21H
show_str:
push cx
mov ax,0B800H
mov es,ax
mov si,0
mov di,0
mov bx,0
mov al,160
mov ah,0
dec dh
mul dh
mov cx,ax
mov al,2
dec dl
add ax,cx
pop cx
mov si,ax
s:
push cx
mov cl,
mov ch,0
jcxz ok
mov byte ptr es:,al
pop cx
mov byte ptr es:,cl
inc bx
add si,2
add di,2
jmp short s
ok:
ret
code ends
end start 问题已解决.栈的问题.
页:
[1]