80X25彩色字符模式显示缓冲区与使用
来源:互联网 发布:版权如何查询知乎 编辑:程序博客网 时间:2024/05/02 00:23
一、实验基本原理:
(资料来源:王爽老师《汇编语言》第九章:转移指令的原理实验九)
二、实验:
在屏幕中间分别显示黑底绿字、绿底红字、白底蓝字的字符串“weclcome to masm!”
代码如下:
;Author:Kangruojin;Time:2017年5月1日23:39:12;Mail:mailbox_krj@163.com;Version:V1.1;主要知识点:;高位字节:BL(闪烁)、E、G、B(背景)、I(高亮)、R、G、B(前景);B8000~BFFFF总共32K,分为8页,一页4K,在任意一页上写都可以;第1页:B8000~B8F9F;我们采用10~12行三行;第十行:B8640~B86DF;第十一行:B86E0~B877F;第十二行:B8780~B881Fassume cs:codeseg,ds:data,ss:stackdata segment ;0123456789ABCDEF db 'welcome to masm!' ;16个字符 db 00000010B ;黑底绿字 db 01110001B ;白底蓝字 db 00100100B ;绿底红字 ;db 10001111B ;黑底白字高亮闪烁 ;db 11011111B ;紫底白字高亮闪烁data endsstack segment db 16 dup (0)stack endscodeseg segment start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,16 mov ax,0B864H ;第十行起始位置 mov es,ax mov bx,30*2 ;从第30个字符开始 mov cx,3 mov bp,16 loop_line: push cx mov si,0 mov di,0 mov cx,16 loop_color: mov al,ds:[si] mov es:[bx][di],al ;写ASCII码 mov ah,ds:[bp] mov es:[bx][di+1],ah ;写属性 inc si ;数据段下标后移一个 add di,2 ;写完一个,移动两个字节 loop loop_color pop cx add bx,80*2 ;换下一行 inc bp ;下一行换下一个属性 loop loop_line mov ax,4C00H int 21Hcodeseg endsend start
结果显示:
0 0
- 80X25彩色字符模式显示缓冲区与使用
- 80*25彩色字符模式显示缓冲区的结构
- 第四篇 操作80*25彩色字符显示缓冲区
- 8086DOS彩色字符模式显示结构
- 《汇编语言》读书笔记(5)----在80*25彩色字符模式下显示字符串
- 汇编语言实现在80*25彩色字符模式下显示字符串
- 80x86汇编语言编程:利用写显示缓冲区的方法,显示彩色文字
- man 如何显示彩色字符
- 终端显示大号彩色字符
- 缓冲区与identify使用
- 字符流的缓冲区和装饰模式
- linux在ANSI兼容终端里显示彩色字符方法
- Python终端显示彩色字符(封装了Colored类)
- WPF设置图片灰度显示与恢复彩色显示
- 装饰设计模式与缓冲区读写
- Java基础19:缓冲区;装饰模式;字节流;字符流
- 保护模式下显示字符
- echo 打印彩色字符
- 易聚之动景
- SDUST 第8次作业,第7次实验
- 重建二叉树
- csu1777
- 面试算法题-03
- 80X25彩色字符模式显示缓冲区与使用
- 易聚之声音
- 模拟银行动态口令生成
- 易聚之气味
- 错误处理:com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 15
- 对一个数组(每项都是数值)求和,有哪些方法?
- 易聚之虚拟实体
- TCP新手误区--心跳的意义
- 1419 最小公倍数挑战