汇编语言 day10

实验9 根据材料编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析:阅读材料得知,一页显示25行,居中位置则是第12行,题目要求分别以上述3中颜色显示,择需要显示的三行分别为
第11行 第12行 第13行,前10行所占的字节数= 10 * 160 = 1600(0640H),所以第11行的起始偏移为 0640H,又由于一行是80个字符,所以一行的字符的起始位置 =( 一行总字符 - 所要显示的字符数)/ 2 = (80 - 16) = 64 (10H), 颜色3种 分别表示为02H、24H、71H
步骤:
1.定义字符串、定义颜色数据
2.循环3次,分别以3种颜色。
3.在颜色循环内,循环取出字符串,并将字符串的ASCII码值和属性值赋值给显示缓冲区
4.返回保存

assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
	db 'welcome to masm!'
	db 02h,24h,71h
datasg ends
stacksg segment
	dw 8 dup(0)
stacksg ends
codesg segment
start:
	mov ax,datasg
	mov ds,ax
	mov ax,0B800h
	mov es,ax
	mov ax,stacksg
	mov ss,ax
	mov sp,16
	mov bx,10h
	mov di,0640h
	mov cx,3
s:
	mov ah,ds:[bx]
	push cx
	push bx
	mov bx,0
	mov cx,16
	mov si,0
s1:
	mov al,ds:[si]
	mov es:[di+64+bx],ax
	add bx,2
	inc si
	loop s1
	pop bx
	pop cx
	inc bx
	add di,160
	loop s
	mov ax,4c00h
	int 21h
codesg ends
end start
	

在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页