实验9的问题
这是实验9小弟自己写的代码,但是运行后屏幕上不显示'welcome to masm!'。还望各位高手不吝赐教,在下感激不尽!assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b872h
mov es,ax
mov bx,0
mov cx,16
mov si,0
mov di,1
s:mov al,ds:
mov es:,al
mov al,02h
mov es:,al
mov al,ds:
mov es:,al
mov al,24h
mov es:,al
mov al,ds:
mov es:,al
mov ah,71h
mov es:,al
add bx,1
add si,2
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b872h
mov es,ax
mov bx,0 ;索引行
mov cx,16
mov si,0 ;索引原数据列
mov di,0 ;索引目的地址数据列,字符放在偶数列,颜色放在奇数列
s: mov al,ds: ;将原数据传送给AL寄存器
mov es:,al ;第一行,BX为0
mov ah,02h
mov es:,ah
add bx,0a0h ;第二行,BX+0A0H
mov es:,al
mov ah,24h
mov es:,ah
add bx,0a0h ;第三行,BX+0A0H
mov es:,al
mov ah,71h
mov es:,ah
add si,1
add di,2
mov bx,0 ;为下一列循环准备
loop s
mov ax,4c00h
int 21h
code ends
end start
;建议编写程序前,可以参考书上的提示,理清思路再编写,这样写起来跟着自己的思路就清晰多了
;我的思路可能跟楼主稍有点不一样,楼主的你的代码冗余代码太多,看的我有点儿头大。
;首先,BX来索引行,SI用来索引原数据列,DI用来索引目的数据列(其中偶数为字符,奇数为颜色),AH传送颜色
;再者,原数据的传送只需要一行代码即可,不必行行都传送一次,另外楼主的颜色和字符都只用了AL寄存器,太省了
;代码改动太大,请楼主参考一下吧,比较一下你的代码,希望对你有帮助。加油!
第三行的显示有点问题.你查下.另外显示不了的原因可以看我的帖子http://bbs.fishc.com/thread-24222-1-1.html
页:
[1]