《汇编语言》第三版实验9【详解】根据材料编程

编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!'。

assume cs:code,es:data,ss:stack    ;定义三个段,分别为代码段codesg、数据段、栈段
data segment
        db 'Welcome to masm!'
        db 02h,24h,71h    ;定义题目所需三种字节属性
data ends

stack segment
        db 16 dup (0)    ;16个字节全为0的栈
stack ends

code segment
start:
        mov ax,data
        mov es,ax
	mov ax,stack  ;定义栈,用于多重循环
	mov ss,ax
	mov sp,10h

        mov ax,0b890h    ;缓冲区的首中间地址
        mov ds,ax

        mov bx,0
        mov si,10h            ;si偏移至ds段中存储字节属性地址
        mov cx,3

s0:
        mov ah,es:[si]        ;ah保存字节属性
        push cx                ;cx,si压栈
        push si

        mov cx,16
        mov si,0
        mov di,0
s1:
        mov al,es:[di]            ;al保存字符
        mov ds:[bx+si],al         ;偶地址写入字符
        mov ds:[bx+si+1],ah       ;奇地址写入字节属性

        add si,2
        add di,1                   ;遍历字符串
        loop s1
        pop si                     ;出栈
        pop cx
        add si,1h                  ;指向下一个颜色
        add bx,0a0h                ;换至下一行
        add dx,1h                  ;指向下一个字符
        loop s0

        mov ax,4c00h
        int 21h

code ends
end start
 
  

运行结果如下....

《汇编语言》第三版实验9【详解】根据材料编程_第1张图片

你可能感兴趣的:(《汇编语言》第三版实验9【详解】根据材料编程)