王爽 汇编语言 第三版 实验9 根据材料编程

时间:2022-02-20 01:18:49

题目


 在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串“welcome to masm!”。 

王爽 汇编语言 第三版 实验9 根据材料编程

王爽 汇编语言 第三版 实验9 根据材料编程

源代码

assume ds:code

data segment
;要显示的字符串内容
db 'welcome to masm!'
data ends

code segment
start: ;设置数据段地址
mov ax,data
mov ds,ax

mov ax,0B800H ;B800H显示缓冲区的起始地址
mov es,ax

mov bx,0 ;字符串内容的偏移地址,每次增加1

;缓冲区的偏移地址,每次增加2
;深入分析:
;需显示在屏幕中间,由材料可得每1行有80个字符占160个字节,而显示
;的字符串字节+属性字节,共32个字节,所以,要达到水平居中的效果
;开始值应该为(160 - 32)/ 2 =64
mov bp,64
mov cx,16;循环16次
a: mov al,ds:[bx] ;取得字符串的字节数据
mov ah,02H ;字符串黑底绿色
;(垂直居中,由材料可得共25行,要显示3行字符串,一行有160个字符((25-3)/2)* 160 = 6E0H)
mov es:[bp+6E0H],ax ;显示在第11行上
mov ah,42H ;字符串绿底红色
mov es:[bp+780H],ax ;显示在第12行上(6E0H + A0 = 780H)
mov ah,71H ;字符串白底蓝色
mov es:[bp+820H],ax ;显示在第13行上(780H + A0 = 820H)

;累加操作
inc bx
add bp,2
loop a

mov ax,4C00H
int 21H
code ends
end start


程序运行示例图


王爽 汇编语言 第三版 实验9 根据材料编程