8086彙編 文字模式下的彩色字元顯示

2021-08-19 23:51:21 字數 1725 閱讀 9658

通過呼叫bios中斷可以設定視窗顯示方式。如

mov ah,00h    ;設定顯示方式

mov al,03h    ;80*25 16色文字顯示

int 10h

通過上述**就可以將視窗設定為80*25 16色文字顯示的視窗,當然文字顯示方式不止03h這一種。

還有如下

al解析度

色彩03h

80*25

16色07h

80*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

在Bash下輸出彩色的文字

期末課程設計 在bash下輸出彩色的文字 關鍵字shell bash 彩色 管道 重定向 awk 我們知道,linux下的bash裡的命令ls預設是開啟顏色顯示的,用各種顏色來區分不同的檔案型別,這說明bash 內建了彩色顯示的功能。bash不是gui而是cli,許多電腦高手都偏愛cli,因為那種親...

Gentoo Linux設定文字模式下的解析度

gentoo在vmware上編譯安裝 step 1 編譯核心,安裝圖形驅動 device drivers connector unified userspace kernelspace linker graphics support support for frame buffer devices ...

組合語言輸出10000以內的素數(小模式下)

在小模式下 masm for window 2015版 輸出10000以內的素數,兩個重點,一是找到10000以內的素數,二是將這些數輸出。其中判斷素數,因為用彙編不方便直接求該數的平方根,從2到本身的判斷又太浪費時間,因此用的是100這個數,當判斷的數較大時可以有效減少所需要的時間,當數小於100...