编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'
80*25彩色字符模式显示缓冲区的结构:
内存地址空间中,B8000H~BFFFFH共32KB的空间,为80*25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
在80*25彩色字符模式下,显示器可以显示25行,每行80个字符,每个字符可以有256中属性(背景色、前景色、闪烁、高亮等组合信息).
这样,一个字符在显示缓冲区中就要占两个字节,分别存放字符的ASCLL码和属性。80*25模式下,一屏的内容在显示缓冲区共占4000个字节。
显示缓冲区分为8页,每页4KB,显示器可以显示任意一页的内容。一般情况下,显示第0页的内容。也就是说通常情况下,B8000H~B8F9FH中的4000个字节的内容将出现在显示器上。
在一页显示缓冲区中:
偏移000~09F对应显示器上的第1行(80个字符占160个字节);
偏移0A0~13F对应显示器上的第2行;
偏移140~1DF对应显示器上的第3行;
以此类推,可知偏移F00~F9F对应显示器上的第25行。
在一行中,一个字符占两个字节的存储空间(一个字),低位字节存储字符的ASCLL码,高位字节存储字符的属性。一行共有80个字符,占160个字节。
即在一行中:
00~01单元对应显示器上的第1列;
02~03单元对应显示器上的第2列;
04~05单元对应显示器上的第3列;
依此类推,可知,9E~9F单元对应显示器上的第80列。
例如:在显示器的0行0列显示黑底绿色的字符串'ABCDEF'
('A'的ASCLL码值为41H,02H表示黑底绿色)
显示缓冲区里的内容为:
可以看出,在显示缓冲区中,偶地址存放字符,奇地址存放字符的颜色属性。
一个在屏幕上显示的字符,具有前景(字符色)和背景(底色)两种颜色,字符还可以以高亮度和闪烁的方式显示。前景色、背景色、闪烁、高亮等信息被记录在属性字节中。
属性字节的格式:
可以按位设置属性字节,从而配出各种不同的前景色和背景色。
比如:
红底绿字,属性字节为:01000010B;
红底闪烁绿字,属性字节为:11000010B;
红底高亮绿字,属性字节为:01001010B;
黑底白字,属性字节为:00000111B;
白底蓝字,属性字节为:01110001B。
例如:在显示器的0行0列显示红底高亮闪烁绿色的字符串'ABCDEF'
(红底高亮闪烁绿色,属性字节为:11001010B, CAH)
显示缓冲区里的内容为:
注意:闪烁的效果必须在全屏DOS方式下才能看到。
assume cs:codesg, ds:datasg, ss:stacksg datasg segment db 'welcome to masm!' db 2h,24h,71h ;三行文字的颜色datasg ends stacksg segment stack db 16 dup (0)stacksg ends codesg segment start: mov ax,datasg mov ds,ax mov ax,stacksg mov ss,ax mov sp,16 mov ax,0B872h mov es,ax mov cx,3 ;三行的显示代码是外层循环三次 mov bx,0 ;记录当前是第几行,也是外层循环的次数s: push cx mov cx,16 ;每行显示16个字符,内存循环16次 mov di,0 ;记录内存循环的次数s0: mov al,ds:[di] ;低字节显示文字 mov ah,ds:[bx+16] ;高字节显示颜色属性 mov si,di add si,si ;一个文字占两个字节 mov es:[si],ax inc di loop s0 pop cx mov ax,es add ax,00ah ;切换到下一行的位置 mov es,ax inc bx loop s mov ax,4c00h int 21h codesg ends end start
最后在DOS界面运行如下:
转载于:https://www.cnblogs.com/gkp307/p/9921256.html
编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'相关推荐
- 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!'...
; 编程:在屏幕中间分别显示绿色.绿底红色.白底蓝色的字符串 'welcome to masm!' assume cs:codesg , ds:datasg , ss:stacksg datasg s ...
- 汇编笔记-在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串“welcome to masm!”
; 王爽-汇编语言-第9章 ; 完成目标:在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串"welcome to masm!" ; 其它需要知道的知识点: ; 1. 内存空间中, ...
- 解决 git 文件夹不显示绿色图标和红色图标的问题
问题描述:安装好git后,被管理的文件没有绿色图标和红色图标. 解决: 1. 修改注册表: Win + r 打开运行窗口,输入 regedit.exe,如下图所示: 2.找路径: 依次找到如下路径: ...
- Git小乌龟的安装及使用技巧(文件夹显示红绿)
1.git https://git-scm.com/downloads 2.git小乌龟 https://tortoisegit.org/download/ 3. 安装语言包https:// ...
- 汉字在屏幕上的显示过程以及乱码的原因
一.计算机中的显示原理 要想在计算机的显示器上显示文字,首先你得写一个程序,这个程序的任务就是就是把文字的显示信息发给显卡,显示信息包括在这个屏幕上的输出位置.字的大小等等.然后显卡就知道怎么显示这个 ...
- 从点阵到OLED屏幕——动态扫描显示原理
在我们买电脑.手机或者电视时,厂家常常会宣传他们的产品用的是什么屏幕,分辨率达到2K或者4K,色彩有多鲜艳,刷新率有多高. 这些参数到底是什么意思?屏幕到底是如何显示出我们想要的文字.图片以及视频呢? ...
- 微型计算机原理怎么编程,微机原理实验一编程实现键盘输入和显示
<微机原理实验一编程实现键盘输入和显示>由会员分享,可在线阅读,更多相关<微机原理实验一编程实现键盘输入和显示(9页珍藏版)>请在人人文库网上搜索. 1.实验一编程实现键盘输入 ...
- c语言在屏幕上显示字母,C语言在屏幕上的显示内容
C语言是一门通用计算机编程语言,那么大家知道C语言在屏幕上的显示内容是什么呢?下面一起来看看! 我们有两种方式从计算机获得信息:一是看屏幕上的文字.图片.视频等,二是听从喇叭发出来的声音. 让喇叭发出 ...
- 超大计算机屏幕台历时钟,大屏幕日历时钟显示-系统.pdf
( ) 天津纺织工学院学报 第16卷第4期 1997 . 16 . 4 ( 1997) JOU RNAL O F T IAN J IN IN ST ITU T E O F V o l N o . 55 ...
最新文章
- 不属于未来计算机范畴,智慧职教云课堂工程数学-2020年春网课答案
- squid中的X-Cache和X-Cache-Lookup的意义
- try~Catch语句中异常的处理过程
- vue 监控元素宽度_Vue入门系列之Vue实例详解与生命周期
- 微服务架构---幂等机制
- String str=Hello 与 String str=new String(“Hello”)一样吗?
- 无心剑中译阿齐姆·普雷姆吉《苦干加巧干》
- python四中方法获取列表中最大/最小的前n个数值的位置索引
- CSDN 勤写标兵勋章 颁发规则
- Sublime Text 3 汉化小技巧
- 计算机快捷截图方式,电脑如何快速截图,电脑快速截屏的几种方法
- [免费专栏] ATTACK安全之Android ICMP隧道攻击原理与入侵检测实践
- matlab积分器的工作原理,[转载]Simulink积分器详解(图)
- 3650m5设置u盘启动_联想启天M425台式机设置u盘启动两种模式(支持uefi/bios双启动)...
- android项目 之 记事本(12) ----- 图片的等比例缩放及给图片添加边框
- javascript 动态画心加文字
- PHP 1到100质数 (素数) 和
- 我想用组态王与电能表通讯
- 用html怎样实现抽奖效果,html5+css3实现抽奖活动的效果
- 电路中各种地的区别及处理
热门文章
- CSDN早报-2019-04-15
- @Transactional详解及其实现步骤
- c语言考试成绩评价规则编程,上海市高等学校计算机二级C语言程序设计考试大纲.doc...
- 3489万!浪潮中标福州市行政(市民)服务中心综合信息化提升项目
- CDH 1、CDH简介
- mysql 时间粒度_SQL Server时间粒度系列----第2节日期、周时间粒度详解
- 1.9 聪明的投资者:投资者与市场波动
- BOW航世HB098S蓝牙键盘使用说明书
- CAD如何黑白打印,一键点击快速打印
- 梦想一旦没着没落,就感觉很扯淡