- UID
- 5322
注册时间2005-12-17
阅读权限10
最后登录1970-1-1
周游历练
TA的每日心情 | 奋斗 2024-4-26 09:43 |
---|
签到天数: 20 天 [LV.4]偶尔看看III
|
在DEBUG里也没找到错误,请不要给小弟写其他的思路,小弟就想知道我的哪一点错误了
我想让显示12666 可是调试的时候正常就是 不能正常运行
我也知道另外一个方法可以实现这个效果 可是我就是想知道 我的这个程序哪一点错误了
assume cs:code,ds:data
data segment
db 10 dup (0)
data ends
code segment
start:
mov ax,12666 ;想让显示的数值
mov bx,data
mov ds,bx
mov si,0
call dtoc ;调用数值显示的子程序
mov dh,8 ;显示的行位置
mov dl,3 ;显示的列位置
mov cl,0cah ;cl中存放颜色属性(0cah为红底高亮闪烁绿色属性)
call show_str ;调用显示字符串的子程序
mov ax,4c00h
int 21h
dtoc: ;数值显示的子程序定义
push ax
push si
push bx
push dx
push cx
mov bx,10
mov di,0
hao:mov cx,ax
jcxz hao2
div bx
add dx,30h
push dx
inc di
mov dx,0
jmp short hao
hao2:mov cx,di
hao1:pop dx
mov ds:[si],dl
inc si
loop hao1
pop cx
pop dx
pop bx
pop si
pop ax
ret
show_str: ;显示字符串的子程序
push bx
push cx
push si
mov al,0A0h
dec dh
mul dh
mov bx,ax
mov al,2
mul dl
sub ax,2
add bx,ax
mov ax,0B800h
mov es,ax
mov di,0
mov al,cl
mov ch,0
s: mov cl,ds:[si]
jcxz ok
mov es:[bx+di],cl
mov es:[bx+di+1],al
inc si
add di,2
jmp short s
ok: pop si
pop cx
pop bx
ret
code ends
end start
[ 本帖最后由 xxdhj 于 2009-8-4 09:03 编辑 ] |
|