|
主题 : : 帮我看下我的显存子程序,我的dh设置为和行数不匹配 [待解决] |
回复[ 5次 ]
点击[ 353次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-11-28 15:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2008-10-30 16:26 |
show_str:push ax
push bx
push cx
push dx
push si
push di
mov al,0a0h
mov ah,0
mul dh
mov bx,ax
mov al,2
mov ah,0
mul dl
add bx,ax
mov ax,0b800h
mov es,ax
mov ah,2
mov di,0
show_str1:mov cl,[si]
mov ch,0
jcxz ok2
mov al,[si]
mov es:[bx+di],ax
add di,2
inc si
loop show_str1
ok2:pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-11-28 15:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
帮我看下我的显存子程序,我的dh设置为和行数不匹配
---------------
先确定自己的思路,没问题后用debug调试。
行 一行160个字符吧
列 80列,显示一个字符需要一个字的内存空间(看看试验九) | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-11-28 19:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2008-10-30 16:26 |
电脑从新启动下就好了,估计是调式多了,显存被我搞坏了,貌似DEBUG执行后那个-G 0BCF:XXX后当前的状态处不可以显示...... | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-11-28 19:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2008-10-30 16:26 |
|
|
|
|
|
[第4楼]
[ 回复时间:2008-12-11 12:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:34 |
dh与dl在乘之前要减一
行数是从0——24
第八行 代表里面的7
同理dl也是
show_str:mov ch,0
mov ax,0b800h
mov es,ax
s1: mov cl,ds:[si]
jcxz ok
push dx
dec dh
mov ax,0
mov al,0a0h
mul dh
mov bx,ax
dec dl
mov ax,0
mov al,2
mul dl
mov di,ax
mov al,ds:[si]
mov ah,2
mov es:[bx+di],ax
pop dx
inc dl
inc si
jmp s1
ok: ret | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-12-11 12:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-17 21:34 |
执行程序 如果直接执行exe文件时,输入命令后,显示的东西会往上移,即在第七行显示,这是正常现象 | | |