马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一段代码
assume cs:code,ds:data
data segment
db 'Welcome to masm !'
db 02h,24h,71h
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b872h
mov es,ax ; es初始化为显示缓冲区段地址
mov di,0
mov bx,17 ;指向数据段中的颜色
mov cx,17 ;第一次绿色字符串的循环数
s1:mov al,ds:[si] ;把第一个字符W存入AL中
mov ah,[bx] ;把颜色存入AH中
mov es:[di],ax ;放入显示缓冲区地址
inc si
add di,2
loop s1
xor si,si ;异或字指令 SI清0
add di,126 ;下一行绿底红色的地址
inc bx
mov cx,17 ;第二次绿底红色字符串的循环数
s2:mov al,ds:[si]
mov ah,[bx]
mov es:[di],ax
inc si
add di,2
loop s2
xor si,si
add di,126 ;下一行白底蓝色的地址
inc bx
mov cx,17 ;第二次白底蓝色字符串的循环数
s:mov al,ds:[si]
mov ah,[bx]
mov es:[di],ax
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start
第二段优化过的代码assume cs:code,ds:data
data segment
db 'Welcome to masm !'
db 02h,24h,71h
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b872h
mov es,ax
mov di,0
mov bx,17
mov cx,3
s0:push cx
mov cx,17
s1:mov al,ds:[si]
mov ah,[bx]
mov es:[di],ax
inc si
add di,2
loop s1
pop cx
xor si,si
add di,126
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
|