彙編8086中向螢幕顯示文字,設定顏色

2021-10-05 02:31:41 字數 1514 閱讀 6559

今天在學彙編,用的王爽老師的《組合語言》第三版,在實驗一的第四題發現了個好玩的,題目是

按照題目要求輸入了,結果在螢幕上顯示出了

在螢幕中顯示了幾個彩色的小符號,研究了一下,感覺挺有意思,b800開始到b8f9分別是螢幕範圍內的顯示區域

b800 -> b809	// 第一行

b8f0 -> b8f9 // 螢幕最後一行

具體是什麼意思呢,也就是,

在位址a0000到bffff這些空間是屬於視訊記憶體的。

而從b8000開始到b8f9f 這些空間對應的就是顯示的螢幕區域。

設定時符合以下規則

66 12h	//h表示這是16進製制
以上前兩位為乙個位元組bytes,表示的是顯示的字元是什麼,符合ascii規範,66是什麼?66就是6*16+6=102,字元』f』,那後兩位呢,後兩位都是色彩位,其中第三位代表背景色,上邊是1,代表藍色,第四位代表前景色,也就是字元顯示出來的顏色,這邊是2,代表綠色。

-e b800:0 66 12
結果是在螢幕左上角顯示乙個f,

-e b80a:e 66 12
結果是在螢幕右上角顯示乙個f,為什麼是e不是f,是因為每個字元顯示需要2個位元組。其中b8000到b809f一共有a0個位元組,也就是1016=160位元組,這證明了什麼呢,證明了螢幕的寬度是80個字元的長度,因為要顯示每個字元需要使用四個16進製制也就是44=16=2bytes,兩個位元組,所以160/2=80,也就證明了可以顯示80個字元。

事實是否如此呢,嘗試打一些數字證實一下,

一共打了80個,剛剛好。

而從b8f0開始,就是最後一行,那一共可以顯示多少行呢?同樣方法計算,最後一行末尾是b8f9f(右下角),b8f9f減去b8000等於fa0,也就是151616 + 10*16 = 4000,那麼之前算了一行需要160位元組,那麼一共就有25行,一共可以顯示4000/2=2000個字元。

b8f9f右下角。

8086彙編顯示中文

具體請參考 github專案 先給個效果圖 給出模板程式如下,有詳細注釋 datas segment 字模資料,可用字模生成程式生成,替換掉此處即可,此處使用的是16 16的黑體字模,32byte 字 tw db 000h,00ch,04fh,08ch,06fh,0ach,028h,0ach,00a...

8086CPU彙編 顯示字串

在第8行第5列以紅色字型顯示 welcome to masm assume ds data,cs code data segment db welcome to masm 0 data ends code segment start mov ax,data mov ds,ax mov si,0 在8...

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

通過呼叫bios中斷可以設定視窗顯示方式。如 mov ah,00h 設定顯示方式 mov al,03h 80 25 16色文字顯示 int 10h 通過上述 就可以將視窗設定為80 25 16色文字顯示的視窗,當然文字顯示方式不止03h這一種。還有如下 al解析度 色彩03h 80 25 16色07...