vbplay 发表于 2014-11-9 11:15:19

王爽汇编语言实验10.3的问题

assume cs:code,ds:data,cs:stack

data segment
db 10 dup (0)
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc

mov dh,8
mov dl,3
mov cl,2
mov si,0
call show_str

mov ax,4c00h
int 21h

dtoc:mov cx,10
div cx
mov cx,ax
jcxz ok
add dx,30h
mov ds:,dx
mov dx,0
inc si
jmp short dtoc
ok:
add dx,30h
mov ds:,dx
ret

show_str: push cx
push dx
mov al,dl;dl 是列数
mov ah,0
mov di,ax
mov ax,0b800h
mov es,ax
mov cl,ds:;第一个字母
mov ch,0
jcxz ook
mov al,160
mul dh;dh是行数
pop dx
mov bx,ax
mov es:,cl
pop cx
mov es:,cl
inc si
add di,2
jmp short show_str
ook:
pop dx
pop cx
ret

code ends
end start代码如上,debug 的时候一切正常,直接在cmd下运行该程序是提示Divide overflow
页: [1]
查看完整版本: 王爽汇编语言实验10.3的问题