实现向屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm'
assume cs:codesg,ds:datasg datasg segment db 'welcome to masm!' datasg ends color segment db 00000010B ;黑底绿字 db 00100100B ;绿底红字 db 01110001B ;白底蓝字 color ends stack segment dw 0,0,0,0, 0,0,0,0 stack ends codesg segment start: mov ax,stack mov ss,ax mov sp,10H mov ax,color mov ds,ax mov bx,2 mov cx,3 colorpush: mov al,0 mov ah,[bx] push ax sub bx,1 loop colorpush ;计算第一个输出位置 mov bx,1824 mov ax,0B800H mov ds,ax mov ax,datasg mov es,ax mov cx,3 outputloop: mov si,0 mov di,cx pop dx;取得输出颜色 mov cx,16 outputline:;向输出位置输出数据 mov dl,es:[si] mov [bx],dx;字符+属性 ;计算下一个输出位置 inc si add bx,2 loop outputline mov cx,di add bx,128 loop outputloop mov ax,4c00H int 21H codesg ends end start