|
主题 : : 实验9,根据材料编程的问题 [已解决] |
回复[ 5次 ]
点击[ 286次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-09-18 16:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2007-09-11 19:18 |
assume cs:code,ds:data
data segment
db 'welcome'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,14
mov ax,0b800h
mov es,ax
mov bx,0
s:
mov al,ds:[bx]
mov ah,02
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
我的屏幕上,只能显示wlo,就是"welcome"每隔一个,请问,这是什么原因,谁能帮我把这个程序补全,谢谢!!!! | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-09-18 17:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2007-09-11 19:18 |
|
|
|
|
|
[第2楼]
[ 回复时间:2007-09-18 20:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:31
信誉值:1
注册日期:2007-06-26 11:44 |
程序循环的逻辑有问题,还有你对显存的结构没有完全了解,建议你在把p175关于显存结构的知识巩固一下,然后在从新考虑一下循环的逻辑部分。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-09-18 20:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42 |
mov al,ds:[bx]
mov ah,02
mov es:[bx],al
inc bx
问题主要在这段代码上,当然,你之前的代码中也有不妥之处。你犯了两个错误:
1.你没搞清楚显存的结构,显存低位是字符,高位是颜色
2.你的寻址定位有问题。
总结一个结论:你好像没有完成前面的检测或任务吧?不然你第二个错误应该很容易就避免了。从思想上就有问题。希望你能一步一步完成你的学习过程。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-09-19 11:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2007-09-11 19:18 |
OK,我用错误的办法照样搞定!!!不要死读书,读死书!
assume cs:code,ds:data
data segment
db 'welcome'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,7
mov ax,0b800h
mov es,ax
mov bx,0
mov si,0
s:
mov al,ds:[si]
mov ah,02
mov es:[bx],ax
inc si
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
我这是用绿色字显示在屏幕上,我这只是个意思就行!!!理解我自己的过程,比理解书的答案过程来得深刻! | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-09-19 14:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2007-09-11 19:18 |
此贴由 贴主 于 [ 2007-09-19 14:36 ] 结贴。 结贴原因:问题已解决 | | |