|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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,[bx]
mov ch,0
jcxz ok
mov byte ptr es:[si],al
pop cx
mov byte ptr es:[si+1],cl
inc bx
add si,2
add di,2
jmp short s
ok:
ret
code ends
end start |
|