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!'相关推荐

  1. 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!'...

    ; 编程:在屏幕中间分别显示绿色.绿底红色.白底蓝色的字符串 'welcome to masm!' assume cs:codesg , ds:datasg , ss:stacksg datasg s ...

  2. 汇编笔记-在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串“welcome to masm!”

    ; 王爽-汇编语言-第9章 ; 完成目标:在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串"welcome to masm!" ; 其它需要知道的知识点: ; 1. 内存空间中, ...

  3. 解决 git 文件夹不显示绿色图标和红色图标的问题

    问题描述:安装好git后,被管理的文件没有绿色图标和红色图标. 解决: 1. 修改注册表: Win + r 打开运行窗口,输入 regedit.exe,如下图所示: 2.找路径: 依次找到如下路径: ...

  4. Git小乌龟的安装及使用技巧(文件夹显示红绿)

    1.git   https://git-scm.com/downloads 2.git小乌龟    https://tortoisegit.org/download/ 3. 安装语言包https:// ...

  5. 汉字在屏幕上的显示过程以及乱码的原因

    一.计算机中的显示原理 要想在计算机的显示器上显示文字,首先你得写一个程序,这个程序的任务就是就是把文字的显示信息发给显卡,显示信息包括在这个屏幕上的输出位置.字的大小等等.然后显卡就知道怎么显示这个 ...

  6. 从点阵到OLED屏幕——动态扫描显示原理

    在我们买电脑.手机或者电视时,厂家常常会宣传他们的产品用的是什么屏幕,分辨率达到2K或者4K,色彩有多鲜艳,刷新率有多高. 这些参数到底是什么意思?屏幕到底是如何显示出我们想要的文字.图片以及视频呢? ...

  7. 微型计算机原理怎么编程,微机原理实验一编程实现键盘输入和显示

    <微机原理实验一编程实现键盘输入和显示>由会员分享,可在线阅读,更多相关<微机原理实验一编程实现键盘输入和显示(9页珍藏版)>请在人人文库网上搜索. 1.实验一编程实现键盘输入 ...

  8. c语言在屏幕上显示字母,C语言在屏幕上的显示内容

    C语言是一门通用计算机编程语言,那么大家知道C语言在屏幕上的显示内容是什么呢?下面一起来看看! 我们有两种方式从计算机获得信息:一是看屏幕上的文字.图片.视频等,二是听从喇叭发出来的声音. 让喇叭发出 ...

  9. 超大计算机屏幕台历时钟,大屏幕日历时钟显示-系统.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 ...

最新文章

  1. 不属于未来计算机范畴,智慧职教云课堂工程数学-2020年春网课答案
  2. squid中的X-Cache和X-Cache-Lookup的意义
  3. try~Catch语句中异常的处理过程
  4. vue 监控元素宽度_Vue入门系列之Vue实例详解与生命周期
  5. 微服务架构---幂等机制
  6. String str=Hello 与 String str=new String(“Hello”)一样吗?
  7. 无心剑中译阿齐姆·普雷姆吉《苦干加巧干》
  8. python四中方法获取列表中最大/最小的前n个数值的位置索引
  9. CSDN 勤写标兵勋章 颁发规则
  10. Sublime Text 3 汉化小技巧
  11. 计算机快捷截图方式,电脑如何快速截图,电脑快速截屏的几种方法
  12. [免费专栏] ATTACK安全之Android ICMP隧道攻击原理与入侵检测实践
  13. matlab积分器的工作原理,[转载]Simulink积分器详解(图)
  14. 3650m5设置u盘启动_联想启天M425台式机设置u盘启动两种模式(支持uefi/bios双启动)...
  15. android项目 之 记事本(12) ----- 图片的等比例缩放及给图片添加边框
  16. javascript 动态画心加文字
  17. PHP 1到100质数 (素数) 和
  18. 我想用组态王与电能表通讯
  19. 用html怎样实现抽奖效果,html5+css3实现抽奖活动的效果
  20. 电路中各种地的区别及处理

热门文章

  1. CSDN早报-2019-04-15
  2. @Transactional详解及其实现步骤
  3. c语言考试成绩评价规则编程,上海市高等学校计算机二级C语言程序设计考试大纲.doc...
  4. 3489万!浪潮中标福州市行政(市民)服务中心综合信息化提升项目
  5. CDH 1、CDH简介
  6. mysql 时间粒度_SQL Server时间粒度系列----第2节日期、周时间粒度详解
  7. 1.9 聪明的投资者:投资者与市场波动
  8. BOW航世HB098S蓝牙键盘使用说明书
  9. CAD如何黑白打印,一键点击快速打印
  10. 梦想一旦没着没落,就感觉很扯淡