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

题目


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



源代码

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 根据材料编程_第1张图片

你可能感兴趣的:(汇编语言)