x8086匯編在顯存中顯示字符串


題目:在屏幕中間顯示綠色,綠底紅色,白底藍色的字符串‘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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM