编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘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