具體請參考
github專案
先給個效果圖
給出模板程式如下,有詳細注釋
datas segment
;字模資料,可用字模生成程式生成,替換掉此處即可,此處使用的是16*16的黑體字模,32byte/字
tw db 000h,00ch,04fh,08ch,06fh,0ach,028h,0ach,00ah,0ach,04ah,0ach,06ah,0ach,02ah,0ach
db 00ah,0ach,02ah,0ach,022h,02ch,026h,08ch,064h,0cch,04ch,05ch,048h,018h,000h,000h
db 000h,068h,060h,06ch,030h,064h,037h,0feh,007h,0feh,0f0h,060h,0f7h,0e0h,037h,0e0h
db 033h,030h,033h,030h,033h,030h,03bh,0d6h,03fh,0deh,036h,00eh,000h,004h,000h,000h
db 002h,000h,003h,000h,001h,080h,0ffh,0feh,0ffh,0feh,018h,060h,018h,060h,00ch,060h
db 00ch,0c0h,006h,0c0h,003h,080h,007h,0c0h,01eh,0f0h,078h,03eh,060h,00ch,000h,000h
db 003h,000h,001h,080h,07fh,0feh,07fh,0feh,060h,006h,01fh,0f0h,01fh,0f0h,000h,0c0h
db 001h,080h,07fh,0feh,07fh,0feh,001h,080h,001h,080h,007h,080h,007h,000h,000h,000h
datas ends
stacks segment
dw 10 dup(?)
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax ;設定資料段暫存器
mov ax,stacks
mov ss,ax ;設定棧段暫存器
mov sp,20
;設定棧頂偏移位址
mov ah,0fh
int 10h ;讀當前顯示方式至ax中
push ax ;當前顯示方式入棧
mov ax,12h
int 10h ;設定顯示方式為vga彩色
mov di,0
;di控制顯示位置,640*480解析度,可顯示80*60位元組,第i行漢字寫入時di為80*16*i~80*16*i+78,相鄰漢字di差2
call display ;呼叫顯示過程
mov ah,01
int 21h ;等待輸入,暫停作用
pop ax ;ax出棧
mov ah,00h
int 10h ;恢復原來顯示方式
mov ax,4c00h ;退出程式
int 21h
;movsw指令將ds:si中資料按字傳送至es:di
display:
;輸出 『測試文字』--------------------
mov ax,0a000h ;vga寫入起始段位址
mov es,ax ;設定傳送目標段位址
cld ;cld指令使df=0,正向傳輸字
mov cx,4
;連續的字數,此處「測試文字」共4字
lea si,tw ;需寫入漢字字模的首位址
dis1:
push cx ;多重迴圈,cx入棧
push si
push di
mov cx,16
disword1:
movsw
add di,78
;轉到下一行字模寫入位置,乙個漢字16*16,故需寫16行
loop disword1
pop di
pop si
pop cx
add si,32
;讀取下乙個漢字的字模資料,由於乙個漢字占用32byte,故加上32
add di,2
loop dis1
ret;-----------------------------
codes ends
end start
8086彙編手冊
一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...
8086CPU彙編 顯示字串
在第8行第5列以紅色字型顯示 welcome to masm assume ds data,cs code data segment db welcome to masm 0 data ends code segment start mov ax,data mov ds,ax mov si,0 在8...
8086彙編 文字模式下的彩色字元顯示
通過呼叫bios中斷可以設定視窗顯示方式。如 mov ah,00h 設定顯示方式 mov al,03h 80 25 16色文字顯示 int 10h 通過上述 就可以將視窗設定為80 25 16色文字顯示的視窗,當然文字顯示方式不止03h這一種。還有如下 al解析度 色彩03h 80 25 16色07...