題目要求:x8086匯編實現dos下的清屏功能
80X25彩色字符模式顯示緩沖區的結構:
在內存地址結構中,B8000H~BFFFFH共32KB的空間,為80x25彩色字符模式的顯示緩沖區。向這個地址空間寫入數據,寫入的內容將立即出現在
顯示器上。
在80x25彩色模式下,顯示器可以顯示25行,每行80個字符,每個字符可以由256中屬性。
80x25模式下,一屏的內容在顯示緩沖區共4000個字符。
字母: ascii 0 為 NUL, 字符解釋-->空
顏色: 0 即將前景色和背景色都設置為黑色
通過一個字節來顯示字符的顏色 0 0 0 0 0 0 0 0 閃爍 R G B 高亮 R G B -背景色-- -前景色-
代碼:
1 assume cs:code,ss:stack,ds:data 2
3 data segment 4
5 data ends 6
7 stack segment 8 db 16 dup (0) 9 stack ends 10
11 code segment 12
13 start: mov ax,stack 14 mov ss,ax 15 mov sp,16
16
17 mov ax,data 18 mov ds,ax 19
20 jmp cls 21
22 next: mov ax,4c00h 23 int 21h 24
25 ;----------------------------------------
26 cls: mov bx,0b800h ;顯存地址 0xb800
27 mov es,bx 28
29 mov bx,0
30
31 mov cx,4000 ;文本模式顯示25行,80字 即80*25*2 = 4000字節
32 s: mov dl,0 ;將NULL字符,即ASCII 0 放入低位 33 mov dh,0 ;將顏色 0 即 黑色 放入高位 34 mov es:[bx],dx 35 add bx,2
36 loop s 37
38 jmp next 39
40
41
42
43 code ends 44
45 end start
