第十章 最后一个数字变文本显示代码完成
assumecs:dmdsjd segment
db 10 dup(0)
sjd ends
dmd segment
cxks:mov ax,12666
mov bx,dmd
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show
mov ax,4c00h
int 21h
dtoc: mov bx,0
s1:mov dx,0
mov cx,10
div cx ;DX AX 中的数据除10,余数给CX
add dx,30h;取其ascii码,这里与书上说的不符 DX中存余数
mov ds:,dl;将数据送入代码段中保存
mov cx,ax
jcxz tc ;AX中为0时跳转退出
inc bx
jmp s1
tc :ret
show:mov al,dh
push cx
mov cl,160
mul cl
pop cx
mov dh,16
div dh
add ax,0b800h
mov es,ax;将显存第三行段地址送给ES附加段
mov dh,0
add dl,dl;占用2个字节,ASCII码和字符属性
mov di,dx;第三列偏移送给DI
mov si,0
mov dl,cl ;将字符属性送给DL
s3: mov al,ds:
mov es:,al
mov es:,dl
mov cx,bx
jcxz s2
add di,2
dec bx ;减一指令
jmp s3
s2:ret
dmd ends
end cxks为神魔书上说 DX+ AX为被除数 CX 为除数,余数存放在CX中,但我用DEBUG 检测余数却存放在DX中望高手指教
页:
[1]