显示不出来
assume cs:codedata segment
dw 123,12666,1,8,3,38
db 100 dup (0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,02
mov bp,0
mov si,0
mov bx,0
mov ax,0
call show_str
mov ax,4c00h
int 21h
dtoc:mov cx,6 ;cx=6,数据除以十得到余数
s:push cx ;cx将保存栈段
s2: mov ax, ;取得data段的被除数
push si
s3: mov cx,ax ;判断商为零
jcxz okye
mov bx,10 ;bx=10
mov dx,0 ;dx清零,继续一个数的下一
div bx
add dx,30h ;余数加上30h,改变为ASCII码
push dx ;得到的ASCII码放入栈中
inc di
jmp short s3 ;商不为零,继续转移到s2
okye: mov cx,di
s4: pop dx ;得到的ASCII码值放入ds:si
mov ,dx ;=dx
inc bp
loop s4
mov di,0
mov dx,0
pop si
add si,2
pop cx
loop s
ret
show_str:mov ax,0A0h
dec dh
mul dh
mov bx,ax
mov ax,2
mul dl
sub ax,2
add bx,ax
mov ax,0B800h
mov es,ax
mov si,12
mov al,cl
mov ah,0
t: mov cl,ds:
mov ch,0
jcxz ok
mov es:,cl
mov es:,al
add di,2
add si,1
jmp short t
ok: ret
code ends
end start
debug 中输入 G 20
补充内容 (2012-11-12 12:40):
不过你的程序有点小问题,更多的可以看我那个操作显存不显示的BUG解决
http://bbs.fishc.com/thread-24222-1-1.html 看似没什么问题哦!!
页:
[1]