1、输出三种不同颜色的字符串
assume cs:code,ds:string,es:color,ss:stack string segment db 'welcome to masm!' string ends color segment db 2,36,113 ;属性化为十进制的数字 color ends stack segment db 16 dup(0) stack ends code segment start: mov ax,string mov ds,ax ;字符串的位置 mov si,16 ;颜色属性的位置 mov ax,stack ;为了保存cx mov ss,ax mov sp,16 ;栈顶 mov ax,0b800h ;显示段地址 mov es,ax mov bp,0720h ;字母首地址 mov cx,3 s1: mov di,0 ;初始化相对位置 push cx ;保存外循环 mov bx,0 ;首字母位置 mov cx,16 ;字符串长度 s2: mov al,[bx] mov es:[bp+di],al ;传递字符 mov al,[si] mov es:[bp+di+1],al ;传递属性 add di,2 ;显示的相对位置 inc bx ;下一个字母 loop s2 inc si ;下一个属性 add bp,160 ;下一行 pop cx loop s1 mov ax,4c00h int 21h code ends end start