|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov si,0 ;初始化源段地址
mov ax,stack
mov ss,ax
mov sp,10h ;初始化栈,SP指向栈底
mov ax,0b872h
mov es,ax
mov di,0 ;初始化目地段地址
mov bx,0 ;bx用来索引颜色
mov cx,3 ;设置外层循环3次,因为有3个字符串
s: push cx ;cx压栈,因为有多个循环
push si ;si压栈,要si始终指向一个字符串
mov cx,10h ;有16个字符,设置10H次循环
s1:
mov dl,ds:[si]
mov es:[di],dl ;传送字符
mov dl,ds:10h[bx]
mov es:1[di],dl ;传送颜色
inc si
add di,2
loop s1
pop si ;栈中弹出一个值,给si,还原到最初值
pop cx ; 同上
inc bx ; 使bx指向下一个字符串的属性颜色
add di,100h ;di 指向下一个字符串的偏移
loop s
mov ax,4c00h
int 21h
code ends
end start |
|