十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
匯編實(shí)驗(yàn)九:在屏幕中間位置顯示三行彩色字符串
80*25彩色字符模式顯示緩沖區(qū)在B8000H到BFFFFH位置。一行80個(gè)字符號(hào),160個(gè)字節(jié)。其中每個(gè)字的低位存儲(chǔ)ASC2碼,高位存儲(chǔ)字符顏色屬性。
屬性格式:
7 6 5 4 3 2 1 0
BL R G B I R G B
7閃爍; 6、5、4背景; 3高亮; 2、1、0前景
0 1 0 0 1 0 1 0 4ah
0 1 0 0 0 1 0 1 45h
0 0 1 0 0 0 0 1 21h
1 assume cs:codes,ds:dates,ss:stacks
2
3 dates segment
4 db 4ah,45h,21h ;顏色 5 db 'welcome to masm!' 6 dates ends
7 stacks segment
8 db 6 dup (0)
9 stacks ends
10 codes segment
11 start:12 mov ax,dates
13 mov ds,ax
14
15 mov ax,stacks
16 mov ss,ax
17 mov sp,25 ;3+16+6,指向棧底18
19 mov ax,0b800h;彩色模式緩沖區(qū)20 mov es, ax
21
22 ;(25-3)/2 = 11行23 ;(80-16)/2 = 32列24 ;(11-1)*160 + 32 = 1632 = 0660h25 mov bx,0660h;
26
27 mov di,028 mov cx,329 setcolor:30 push cx
31 push di;顏色存放偏移位置32
33 mov ax,ds:[di];依次獲取顏色值34 mov di,ax
35 mov si,336 mov cx,1637 setchar:38 mov al,[si]
39 mov es:[bx],al;設(shè)置字符40 mov ax,di
41 mov es:[bx+1],al;設(shè)置顏色屬性42 add bx,243 inc si
44 loop setchar
45
46 ;輸出字符串16個(gè)字節(jié)加16個(gè)屬性字節(jié)47 ;160-16*2 = 0080h48 add bx,0080h;
49 pop di
50 pop cx
51 inc di
52 loop setcolor
53
54 mov ax,4c00h
55 int 21h
56 codes ends
57 end start
View Code