分享一下实验9我的写法:
我是直接一个循环里搞定了 感觉这样最直接了, 如有不妥请指正。
assume CS:codesg,DS:data
data SEGMENT
DB 'welcome to masm!'
DB 02h,24h,71h ;对应属性 绿色,绿底红色,白底蓝色
data ENDS
codesg SEGMENT
start:
MOV AX,data
MOV DS,AX
MOV AX,0b800h
MOV ES,AX
MOV CX,16
MOV BX,720h; 写入的起点,若从顶点开始显示,为0,
;屏幕中间的话,3行32个字节,左右各64个,上下各11行,11*160+64=1824=720h
MOV SI,0
s0:MOV AL,[SI]
MOV ES:[BX],AL
MOV ES:[BX+160],AL ;下面一行
MOV ES:[BX+320],AL ;下面两行
MOV BYTE PTR ES:[BX+1],02h
MOV BYTE PTR ES:[BX+160+1],24h
MOV BYTE PTR ES:[BX+320+1],71h
INC SI
ADD BX,2
LOOP s0
MOV AX,4c00h
INT 21h
codesg ENDS
END start |