assume cs:codesg,ss:data data segment db 'welcome to masm!' db 2h,24h,71h data ends codesg segment start: mov ax,data mov ss,ax mov bp,0 ;用于指向栈中的每个字符 mov ax,0b800h mov ds,ax mov bx,6e0h mov di,0 mov cx,3 s0: mov ah,ss:[di + 10h] ;获得一种颜色 mov dx,cx mov si,0 mov cx,10h s1: mov al,[bp] mov [bx + si + 40h],al ;低位字符 mov [bx + si + 41h],ah ;高位属性 add si,2 inc bp loop s1 add bx,0a0h inc di ;获得下一种颜色 mov cx,dx ;还原一层循环的迭代变量 mov bp,0 loop s0 mov ax,4c00h int 21h codesg ends end start