8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086
DATAS SEGMENTdb 'AaabbbcccH' ;要显示的字符串,10
DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AXmov sp,128mov ax,0b872h ;算出屏幕第12行中间的显存的段起始位置放入ax中mov es,ax ;此时es为屏幕第12行中间的显存的段起始位置mov si,0 ;si用来索引代码列的字符mov di,0 ;di用来定位目标列mov cx,10 ;字符串长度s1:mov al,ds:[si] ;源字符mov es:[di],al ;显示目标字符体mov al,75h ;颜色mov es:[di+1],al;设置目标字符颜色inc si ;db 一个字符一个字节add di,2 ;显存 一个字符两个字节:偶字符体,奇字符颜色loop s1MOV AH,4CHINT 21HCODES ENDSEND START
在emu8086中运行如下;
此程序并未调用汇编 int 10h功能;INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序;
也未调用 int 21h,ah = 02 子功能,其功能是显示输出,要输出的字符放在dl寄存器中;见此;
https://blog.csdn.net/bcbobo21cn/article/details/108892802
使用的方法是直接写显示缓存;把字符直接写到显示缓存位置,就在屏幕上输出了;
在内存地址空间中,B8000H - BFFFFH 共32kB的空间,为80*25彩色字符模式的显示缓冲区;
显示缓冲区分为8页;每页4KB,4000B;一般情况下,显示第0页内容,B8000H - B8F9FH的4000个字节;
直接写显示缓存我记得是DOS时代重要的技术;目前Win系统还存在否不了解;原理应该是存在的;
原程序见此;
https://blog.csdn.net/larger5/article/details/80617601
在仿真内存顶部输入 b872:0000;如下;看到被显示字符被写入此处;
8086汇编语言显示带颜色的字符串程序学习 - 使用emu8086相关推荐
- 用C语言Linux下打印带颜色的字符串
用C语言Linux下打印带颜色的字符串 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色 字颜色:30---------- ...
- Qt笔记-Linux程序打印带颜色的字符串
这是脚本之家给出的一个例子: #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo -e "\033[30m 黑色字 \033[0m" ...
- Shell 显示带颜色字体
格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码" 如果单纯显示字体颜色可以固定控制码位0m. 格式: echo "/033[字背景颜色;字体颜 ...
- linux自定义显示带颜色的字
让echo输出带颜色的方法有两种 在shell脚本中定义颜色变量,使用echo -e调用变量 定义变量的时候,把echo -e定义到变量中,然后输出变量 格式及选项 格式如下: `echo -e &q ...
- echo 命令显示带颜色的字
让echo输出带颜色的方法有两种 在shell脚本中定义颜色变量,使用echo -e调用变量 定义变量的时候,把echo -e定义到变量中,然后输出变量 格式及选项 格式如下: `echo -e &q ...
- 8086汇编语言显示一串字符串中ASCII码最大的一个字符
微机原理大作业的一部分,比较简单,题目描述如下: 拿之前写过的代码修改,5分钟搞定,甚至连调试都没调,一次运行就功能正常了.好家伙! 代码如下: DATAS SEGMENTSINPUT DB 'Ple ...
- 【未解决】CMD窗口无法显示带颜色文字输出
一.问题出现背景: 给git设置公钥私钥的时候,输入ssh -T git@gitee.com出现疑似乱码的情况(后来才知道是颜色编码) 二.可能原因及尝试过程: 1.参考CMD中文乱码CHCP 650 ...
- UILabel显示带颜色边的文字
需求如图,UILabel要实现带红色边的文字显示. 1.新建UILabel的子类JXBorderLabel 2.重写drawRect:方法 #import "JXBorderLabel.h& ...
- python3使用print打印带颜色的字符串
一.实现过程 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033 ...
最新文章
- 869所高校上榜!2020中国内地大学第三方综合指数排名出炉
- 语言兔子繁衍问题讲解_二年级思维数学:位置问题,找到重复部分是解题关键...
- c++primer 12.3.1文本查询程序
- 判断字符串括号{}[]()是否闭合—python实现
- 想快速了解AI各领域的前沿研究成果?可以来这个网站看看 | 资源
- 基础知识复习(一)——C语言位运算符详解
- Python下载文件到本地
- 怎么完全卸载赛门铁克_如何卸载symantec
- python C语言加速
- linux硬盘的两个分区合并_linux多个分区合并为一个分区
- 哈工大SCIR十篇长文被EMNLP 2022主会及子刊录用
- Centos初学者需要会的几种命令(2)
- Python读写矢量数据(2)矢量数据写入(属性数据)——Python地理数据处理学习分享
- C语言#include的用法
- Linux常用命令cp详解
- 渗透测试之破解密码(3)
- “搜狗问问”问答语料爬虫
- 8051单片机I/O端口结构与原理
- 与过去的一次漫长告别
- java-net-php-python-springboot区校企大型仪器智慧共享平台计算机毕业设计程序
热门文章
- matlab对手写数字聚类的方法_scikitlearn — 聚类
- 用javascript实现简单的物质(密度)分布图
- 利用Proceesson在线绘制流程图实例演练!流程图的要点和注意事项说明
- CTFshow php特性 web106
- Codeforces Round #476 (Div. 2) B. Battleship
- poj2976Dropping tests (二分搜索+还是涉及昨天遇见的o1分数规划)
- condest--1-范数的条件数估计
- 计算n!中结尾零的个数
- 【Kaggle-MNIST之路】CNN+改进过的损失函数(三)
- Nginx+PHP7 安装及配置