题目:
注意事项:
1.windows 7下运行可能看不到效果,我这里是这样,安装xp解决。
2.横向比较,多篇教程综合看。
3.本题相关博客
代码:
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:
mov ax,data
mov es,ax ; es指向数据段
mov ax,0B800h
mov ds,ax ;ds指向显示的部分
mov bx,0 ;显示偏移 三次每次增加10h
mov si,10h ;颜色的偏移量,三次循环每次增加1h
mov cx,3
s0: ;三行循环
mov ah,es:[si] ;保存字符的颜色 一个字节
push cx
push si
mov cx,16 ;十六次循环
mov si,0 ;si显示区域每次的偏移 每次加2
mov di,0 ;di字符读取时候每次的偏移 每次加1
s1: ;每一行 先放一个ascii再放属性,放16次
mov al,es:[di] ;字符放在al里
;mov ds:[bx+si],al ;低字节放字符
mov ds:[bx+si],ax
;mov ds:[bx+si+1],ah ;高位字节存放颜色
add si,2
add di,1
loop s1
pop si
pop cx
add si,1h ;偏移量为1指向下一个字节
add bx,0a0h ;每行160个字符
add dx,1h
loop s0
all:
jmp short all ;一直循环
mov ax,4c00h
int 21h
code ends
end start
结果: