我是靠谱客的博主 干净大门,最近开发中收集的这篇文章主要介绍8086汇编 文本模式下的彩色字符显示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

8086汇编的文本显示方式

通过调用BIOS中断可以设置窗口显示方式。如

mov ah,00h
;设置显示方式
mov al,03h    ;80*25 16色文本显示
int 10h

通过上述代码就可以将窗口设置为80*25 16色文本显示的窗口,当然文本显示方式不止03h这一种。

还有如下

AL分辨率色彩
03H80*2516色
07H80*25单色


文本模式下显示彩色文字,选则03h就好。

彩色字符显示 

在完成上述显示方式设置之后就可以试着显示彩色字符啦(貌似我的编译器默认的就是彩色的)

在如DOS中断中显示字符,字符一般是以黑色背景与灰白色字体显示的。而使用BIOS中断显示彩色则需要使用09号功能,或者0A号功能。

暂且只说09号功能,示例代码如下

mov ah,09h
mov al,'A'
;显示的字符
mov cx,1
;字符显示数量
mov bl,04h ;字符颜色信息
mov bh,00
;页码设置
int 10h
;在当前光标处显示一个背景色为黑色,前景色为红色的字符'A'

文本模式下bh的数值最好设置为零。

字符颜色

在文本16色模式下,字符的属性存储在bl中,bl为一个字节大小,共八位。


b7控制字符是否闪烁,b6-b4为背景色,b3-b0为前景色

最后

09号功能只能在当前光标处显示彩色字符。但是并不移动光标。所以想通过此命令连续输出字符。并且不被覆盖必须移动光标

而BIOS中断中的02号中断,提供了此功能。

mov ah,02h
mov dx,03h
int 10h ;将光标移动至文本的第1行,第三列

dl是列参数,dh是行参数

再配合BIOS中断中的03号中断,可以读取当前光标位置。就可实现用上面说的字符显示方式,连续输出字符。

DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,00H
MOV AL,02H
INT 10H
MOV AH,09H
MOV BH,0
MOV AL,'A'
MOV BL,04H
MOV CX,1
INT 10H
MOV AH,03H
INT 10H
INC DL
MOV AH,02H
INT 10H
MOV AH,09H
MOV BH,0
MOV AL,'B'
MOV BL,84H
MOV CX,1
INT 10H
MOV AH,4CH
INT 21H
CODES ENDS
END START

最后

以上就是干净大门为你收集整理的8086汇编 文本模式下的彩色字符显示的全部内容,希望文章能够帮你解决8086汇编 文本模式下的彩色字符显示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部