題目:在屏幕中間顯示綠色,綠底紅色,白底藍色的字符串‘welcome to masm!’
80X25彩色字符模式顯示緩沖區的結構:
在內存地址結構中,B8000H~BFFFFH共32KB的空間,為80x25彩色字符模式的顯示緩沖區。向這個地址空間寫入數據,寫入的內容將立即出現在
顯示器上。
在80x25彩色模式下,顯示器可以顯示25行,每行80個字符,每個字符可以由256中屬性。
80x25模式下,一屏的內容在顯示緩沖區共4000個字符。
===========================================================
綠色: 0000 0010B -> 02H
綠底紅色: 0010 0100B -> 24H
白底藍色: 0111 0001B -> 71H
============================================================
代碼:
1 assume cs:code,ss:stack,ds:data 2 3 data segment 4 db 'welcome to masm!' 5 db 00000010B 6 db 00100100B 7 db 01110001B 8 data ends 9 10 stack segment 11 db 128 dup (0) 12 stack ends 13 14 code segment 15 16 start: mov ax,stack 17 mov ss,ax 18 mov sp,128 19 20 mov ax,data 21 mov ds,ax 22 23 jmp show_m 24 25 xh: jmp xh 26 27 next: mov ax,4c00h 28 int 21h 29 ;------------------------------------- 30 show_m: 31 32 mov bx,0b800h 33 mov es,bx 34 35 mov bx,16 ; ds:[bx] color 36 mov di,12*160+60 ; es:[di] zimu + color 37 38 mov cx,3 39 40 s_c: push cx 41 push di 42 43 mov si,0 ; ds:[si] zimu 44 mov cx,16 45 46 47 s_w: mov dl,ds:[si] 48 mov dh,ds:[bx] 49 mov es:[di],dx 50 inc si 51 add di,2 52 loop s_w 53 54 pop di 55 pop cx 56 inc bx 57 add di,160 58 loop s_c 59 60 jmp next 61 62 63 64 code ends 65 66 end start
