第四篇 操作80*25彩色字符显示缓冲区

[8086汇编] 80*25彩色字符模式显示缓冲区 0x00 简单介绍 80*25彩色字符模式的显示缓冲区是用于控制显示器显示的内存地址空间,占用了b800h-b 0x01 常见用途 0x02 代码实例 阅读详情

这篇博文将要简单介绍下,如何在屏幕上显示字符的各种效果。

注:博文中的图片来自王爽《汇编语言》,代码出自博主。

一:要求

二、对显示缓冲区的简单介绍

三、对字符属性字节的简单介绍

四、一个简单的例子,有助于理解

五、解决该题

1、按照题意,只要想缓冲区一个接一个地写入字符及其属性就可以在屏幕上显示了。

代码:

data segment
	characters db 77h,65h,6ch,63h,6fh,6dh,65h,20h,74h,6fh,20h,6dh,61h,73h,6dh,21h
		      ;welcome to masm!

	color1 db 02h      ;绿色
	color2 db 24h      ;绿底红色
	color3 db 71h      ;白底蓝色
data ends

code segment
	assume cs:code,ds:data
start:
	mov ax,data
	mov ds,ax

	;显示绿色
	mov di,0
	mov al,color1
	call display

	;显示绿底红色
	mov di,00a0h
	mov al,color2
	call display

	;显示白底蓝色
	mov di,0140h
	mov al,color3
	call display

	mov ah,4ch
	int 21h

display proc near
	push si
	push cx
	push bx

	;显示确定段地址
	mov bx,0b800h
	mov es,bx

	;将字符及其属性写到内存相关区域
	mov si,0
	mov cx,16
again:
	mov bl,characters[si]
	mov es:[di],bl
	inc di
	mov es:[di],al
	inc di
	inc si
	loop again

	pop bx
	pop cx
	pop si

	ret
display endp

code ends
	end start

2、这里要注意的是,博主在win7旗舰版系统上无法看到结果,在XP系统上显示结果。结果会依次显示在

屏幕的最前三行。

3、结果截图


 

汇编语言之屏幕字符显示 在屏幕中间分别显示不同颜色的字符串“Jackill Love You” 在内存地址空间,B8000H~BFFFFH共32K空间,在此空间写入数据会显示在显示器上;在80*25彩色字符模式下,显示器可以显示25行,80个字符,一个字符占两个字节,低位为ASCII码,高位为字节存储字符的属性。   00~01/9E~9F单元分别对应第一列和第80列;字符属性略-察看9.9;   例如在0行0 阅读详情

相关推荐

STM32 OLED进阶:字符串、汉字与图片显示的实战方案

在嵌入式系统开发中,人机交互界面是连接用户与设备的关键桥梁,而显示驱动技术则是实现这一交互的核心基础。其原理在于通过控制像素缓冲区,将数据转换为可视化的图形或文字信息。这项技术的价值在于能够以直观的方式呈现系统状态、传感器数据和用户指令,极大地提升了设备的易用性和功能性。在物联网终端、工业仪表和智能穿戴等应用场景中,高效、稳定的显示方案尤为重要。本文聚焦于STM32平台上的OLED显示,深入探讨了如何实现可变长度字符串、自定义汉字以及单色图片的显示,其中涉及了缓冲区管理、字库处理和取模软件使用等关键热词,并

weixin_30463341的博客 363

【汇编语言】实验9 根据材料编程

80x25彩色字符模式显示缓冲区(以下简称为显示缓冲区)的结构: 内存地址空间中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。

ntr851217的博客 2247

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)1.可能是ESP STA模式未成功连接到路由器,确保 STA 成功连接到外部网络。2.检查 STA 和 AP 的网络配置是否正确,避免子网冲突。3.ESP32的NAPT功能未正确启用,确保 menuconfig 中已启用 IP_NAPT。4.DNS服务器未正确配置。

qq_34885669的博客 1540

《汇编语言》- 读书笔记 - 第9章-实验9 根据材料编程

本文是一篇汇编语言实验笔记,介绍了如何在屏幕上居中显示不同颜色的字符串。首先,文章解释了80x25彩色字符模式显示缓冲区的结构,包括内存地址范围、每页显示内容、字符属性[闪RGB高RGB]等。接着,通过计算确定了字符串在屏幕上的居中位置。最后,提供了汇编代码实现,包括初始化数据段、遍历字符串、设置颜色属性,并将其写入显存。代码详细注释,易于理解。

灵台方寸山斜月三星洞 574

IP路由原理、静态路由及动态路由区分

什么是路由 路由是指导IP报文发送的路径信息。 直连路由:目的地所在网络与路由器直接相连。 间接路由:目的地所在网络与路由器非直接相连。 静态路由是由管理员手工配置而生成的路由。 动态路由路由器使用路由协议从其他路由器那里获悉的路由。

weixin_42227328的博客 5471

Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络连续像素级与估计

Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络的连续的像素级的

MengYa_Dream的博客 4717

80*25彩色字符模式显示缓冲区的结构

<br /> <br />内存地址空间中,B8000h~B8FFFFh共32KB的空间,为80*25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容立即出现在显示器上。<br />在80*25彩色字符模式下,显示器可显示25行,每行80个字符,每个字符可以有256种属性(背景色、前景色、闪烁、高亮等组合信息)<br />这样一个字符在显示缓冲区中就要占两个字节,分别存放ASCII码和属性。一屏的内容在显示缓冲区中攻占4000个字节。<br />显示缓冲区分8页,每页4KB(约=4000B),显示

philip_liu的专栏 3422

SAP ABAP Cloud 发展简史

其中用于云开发的 ABAP,官方术语是 「ABAP in the Cloud」,本文后续叙述方便起见,简称为 「ABAP Cloud」. 它涵盖了标准 ABAP 语言范围的一个子集,只能访问受限的 API,用于构建 SAP BTP ABAP 环境以及 SAP S/4HANA Cloud ABAP 环境上的云解决方案。SAP ABAP 平台是用于 SAP ECC、SAP S/4HANA 和 SAP BTP 等产品的技术平台,也是 ABAP 应用程序的开发和运行环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1394

字符串缓冲区

一、StringBuffer类 在学习String类时,API中说字符串缓冲区支持可变的字符串,什么是字符串缓冲区呢?接下来研究下字符串缓冲区。 查阅StringBuffer的API,StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。 原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中...

weixin_41874888的博客 1106

SAP 批量修改 工艺路线 和 BOM

1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。当前工作区域:选择 SAP_ITEM 对BOM行项目进行变更,工艺路线也是可以批量更改的,根据实际的业务进行选择,我这里选择的就是BOM的组件变更。5、本博客将使用新的一种方式进行BOM的批量变更,标准的事务代码:CEWB对BOM进行批量更改。3、使用LSMW的方式进行BOM的批量更改。

我小时候很黑的博客 4100

数学史学习资料:史前数学

著名物理学家伽莫夫(宇宙大爆炸理论以及核聚变理论的提出者)在他的科普书《从1到无穷大》中举了这样一个例子。两个原始部落的酋长比赛,看谁说的数字大。第一个酋长说了三,第二个酋长想了半天,然后说你赢了。你今天听起来觉得这两个人真可笑,至少说出四,岂不就赢了?但是对这两位酋长来讲,所拥有的东西就很少超过三个,比三个多的东西他们就觉得没有必要数清楚了,就用许多来形容了。也就是说,他们生活的环境限制了他们的认知。

howard2005的专栏 902

汇编语言实现在80*25彩色字符模式下显示字符串

记得大一刚接触c语言的时候,用c语言打印出了彩色的字符串,但感觉很神奇,转眼间,已经成为大三狗了,哈哈^^. 好了,不说废话了,今天,就来看看怎样用汇编语言打印彩色的字符串. 80*25彩色字符模式在内存地址空间中,B8000H~BFFFFH共32KB的空间,为80*25彩色字符模式的显示缓冲区,向这个地址空间写数据,写入的内容将立即出现在显示器上. 在80*25彩色字符模式下,显示器可以显示25

杨龙飞的博客 7904

等保测评-达梦数据库

一般适用于等保测评

m0_54146694的博客 1300

使用汇编在屏幕上打印字符

以下代码在pi ASSUME CS:T17,DS:DATA DATA SEGMENT DB 'HELLO WORLD!' DATA ENDS T17 SEGMENT START: MOV AX,DATA MOV DS,AX MOV CX,25 MOV AX,0B800H MOV ES,AX MOV BP,0H S: MOV DX,CX MOV CX,12 MOV SI,0 MOV BX,0 S0: MOV AL,DS:[BX] MOV AH,02H.

wu58430的博客 1966

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

CNN+LSTM+Attention+DNN模型实战:pytorch搭建CNN+LSTM+Attention+DNN行车速度预测

6045

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

汇编操作显存

【0】README0.1)本文转自:http://www.cnblogs.com/youxin/archive/2012/05/21/2512329.html for relative source code , please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/lib.inc【1】关于 80*25彩色字符模式显

PacosonSWJTU的博客 4153

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【汇编作业】-9-在屏幕中间显示文字

【汇编习题】9-在屏幕正中间显示不同颜色文字

790

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

王爽《汇编语言》实验9详解

实验9 根据材料编程 在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串“welcome to masm!”。 材料: 内存地址空间中,B8000H~BFFFFH共32K的空间,为80*25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。 在80*25彩色字符模式下,显示器可以显示25行,每行80个字符,每个字符可以有256种属性(背

Control Complexity 8627

8086汇编在指定页、指定行、指定列、指定颜色、输出指定字符

8086汇编在指定页、指定行、指定列、指定颜色、输出指定字符 1.      最终结论: 假设 屏幕为80*25模式 指定页:Ph(十六进制,从0开始) 指定行:Rh(十六进制,从0开始) 指定列:Ch(十六进制,从0开始) 指定颜色:Cob(二进制) 指定字符:char   初始化屏幕指定位置对应的缓存地

SoulsCarrier的专栏 1326

(十四)《汇编语言(王爽)》 | 实验 9:根据材料编程

《汇编语言(王爽)》 | 实验 9:根据材料编程

Skies_的博客 2277

Hello World程序

本文最初发表于2015-8-??,是由别的地方迁移过来的   本文利用改写内存的办法在屏幕中央显示“Helloworld”字符串。   首先我们需要了解80*25彩色字符模式显示缓冲区的结构。   〉〉内存中B8000H~BFFFFH的32KB内存空间是80*25彩色字符模式的显示缓冲区。   〉〉一个字符要在该缓冲区中显示需要一个字的空间。低字节保存字符的ASCII码,...

T13709570080的博客 288

汇编——实验9

一.实验内容及结论 (一)实验任务一 补全程序t1.asm,完成在屏幕上输出内存单元的十进制两位数 源程序: ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segment db 12 db 0,0 ; 前一个字节用于保存商,后一个字节用于保存余数 data ends code segment s...

weixin_30794491的博客 256

汇编直接在显存地址写字符显示

汇编器:nasm 虚拟机:bochs 操作系统:mac osx 将汇编代码写入磁盘的0柱面,0磁道,1扇区,开机启动后bios会自动加载这512字节到内存0x7c00处,然后跳到这开始执行。 在屏幕上显示字符,可以直接写到显存里,就直接在屏幕上显示出来了,显存地址从0x8000开始,每个字符占两个字节,一个字节存放字符,一个字节存放这个字节的显示属性。 具体可参考王爽汇编语言实验9。 ...

fxnfk 5032

实验九

实验1: 代码补全: ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segment db 12 db 0,0 ; 前一个字节用于保存商,后一个字节用于保存余数 data ends code segment start: mov ax,data mov ds,ax ...

weixin_33751566的博客 89

从字符显示到数值转换:汇编语言show_str和dtoc子程序深度解析

本文深度解析汇编语言中show_str和dtoc两个核心子程序的设计与实现。show_str子程序负责将字符串写入显存以实现屏幕显示,涉及显存地址计算与字符属性设置;dtoc子程序则通过除10取余算法将数值转换为十进制字符串,并巧妙利用栈解决顺序问题。文章还探讨了避免除法溢出的divdw子程序,以及如何组合这些模块实现完整的数值显示功能,是理解底层硬件交互与问题分解思维的绝佳实践。

weixin_29185493的博客 296
上一篇: 第三篇 子程序调用与返回的一点小问题
下一篇: 第五篇 直接面向系统资源的0号中断处理
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值