请教一个关于汇编的问题
最近本人初学汇编,在看王爽老师的“汇编语言”第二版。做书中实验十的第一个子程序时,编写代码如下:
assume cs:code,ds:data,ss:stack
data segment
db 'Welcome to masm!',0
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:
push ax
push bx
push es
push cx
push dx
push si
mov ax,0b800h
mov es,ax
dec dl
dec dh
mov al,dl
mov ah,0
mov bl,160
mul bl
mov bx,ax
mov al,dh
mov bl,2
mul bl
add bx,ax
s:mov al,[si]
push cx
mov cx,ax
jcxz ok
pop cx
编译连接成功后程序无法正确运行,提示“CPU遇到无效的指令”。
用DEBUG单步跟踪后发现问题出在IP=0023处,修改该处指令依然不能解决。。。
在下愚钝,想不通原因,发帖请教一下。。。。
多谢帮助。