1. 程式人生 > 其它 >實驗9-程式設計顯示字串

實驗9-程式設計顯示字串

技術標籤:組合語言

要求:

在螢幕中間分別顯示綠色、綠底紅色、白底藍色的字串’welcom to masm!’

程式設計所需的知識如下:

  • 記憶體地址空間中,B8000H~BFFFFH共32KB的空間,為 80 × 25 80\times25 80×25彩色字元模式的顯示緩衝區。向這個地址空間寫入資料,寫入的內容將立即出現在顯示器上。 80 × 25 80\times25 80×25代表顯示器可以顯示25行,每行80個字元。
  • 每個字元有256種屬性(背景色、前景色、閃爍、高亮等資訊),所以一個字元在顯示緩衝區要佔兩個位元組,分別存放字元的ASCⅡ碼和屬性。 80 × 25 80\times25
    80×25
    模式下,一屏的內容在顯示緩衝區中共佔4000個位元組。
  • 顯示緩衝區分為8頁,每頁4KB(大約4000B),顯示器可以顯示任意一頁的內容。一般情況下,顯示第0頁的內容。也就是說通常情況下,B8000H~B8F9FH中的4000個位元組的內容將出現在顯示器上
  • 在一頁顯示緩衝區中:
    偏移000~09F對應顯示器上的第一行(80個字元佔160個位元組)
    偏移0A0~13F對應顯示器上的第2行

    以此類推,偏移F00~F9F對應顯示器上的第25行

例:在顯示器的第0行0列顯示黑底綠色的字串’ABCDEF’

顯示緩衝區裡面的內容為:

在這裡插入圖片描述

可以看出,在顯示緩衝區中,偶地址存放字元,奇地址存放字元的顏色屬性。

一個在螢幕上顯示的字元,具有前景(字元顏色)和背景(底色)兩種顏色,字元還可以以高亮度和閃爍的方式顯示。前景色、背景色、高亮等資訊被記錄在屬性位元組中。

屬性位元組的格式如下:
在這裡插入圖片描述
我們可以按位設定屬性位元組,從而配出各種不同的前景色和背景色,比如:

  • 紅底綠字,屬性位元組為:01000010B
  • 紅底閃爍綠字,屬性位元組為:11000010B

注意:閃爍的效果必須在全屏DOS的方式下才能看到。

assume cs:code

data segment
	db 'welcome to masm!'
data ends

code segment

start:	mov ax,data
		mov ds,ax
		mov ax,0b800h			;這裡需要注意,彙編中資料表示不能以字母開頭,所以如果資料的開頭是字母的話需要在字母前加0
		/待補充