实验9-编程显示字符串

要求:

在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcom to masm!’

编程所需的知识如下:

  • 内存地址空间中,B8000H~BFFFFH共32KB的空间,为 80 × 25 80\times25 80×25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。 80 × 25 80\times25 80×25代表显示器可以显示25行,每行80个字符。
  • 每个字符有256种属性(背景色、前景色、闪烁、高亮等信息),所以一个字符在显示缓冲区要占两个字节,分别存放字符的ASCⅡ码和属性。 80 × 25 80\times25 80×25模式下,一屏的内容在显示缓冲区中共占4000个字节。
  • 显示缓冲区分为8页,每页4KB(大约4000B),显示器可以显示任意一页的内容。一般情况下,显示第0页的内容。也就是说通常情况下,B8000H~B8F9FH中的4000个字节的内容将出现在显示器上
  • 在一页显示缓冲区中:
    偏移000~09F对应显示器上的第一行(80个字符占160个字节)
    偏移0A0~13F对应显示器上的第2行

    以此类推,偏移F00~F9F对应显示器上的第25行

例:在显示器的第0行0列显示黑底绿色的字符串’ABCDEF’

显示缓冲区里面的内容为:

在这里插入图片描述

可以看出,在显示缓冲区中,偶地址存放字符,奇地址存放字符的颜色属性。

一个在屏幕上显示的字符,具有前景(字符颜色)和背景(底色)两种颜色,字符还可以以高亮度和闪烁的方式显示。前景色、背景色、高亮等信息被记录在属性字节中。

属性字节的格式如下:
在这里插入图片描述
我们可以按位设置属性字节,从而配出各种不同的前景色和背景色,比如:

  • 红底绿字,属性字节为:01000010B
  • 红底闪烁绿字,属性字节为:11000010B

注意:闪烁的效果必须在全屏DOS的方式下才能看到。

assume cs:code

data segment
	db 'welcome to masm!'
data ends

code segment

start:	mov ax,data
		mov ds,ax
		mov ax,0b800h			;这里需要注意,汇编中数据表示不能以字母开头,所以如果数据的开头是字母的话需要在字母前加0
		/待补充
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值