導航:首頁 > 編程系統 > 3232點陣字型檔linux

3232點陣字型檔linux

發布時間:2023-09-10 06:19:20

㈠ 如何使用匯編語言程序設計方法在屏幕上輸出漢字

通過實踐,大概了解圖形模式下的工作方式,和漢字支持的基本實現方法。我的工作是讓系統啟動後在屏幕上顯示「漢字操作系統」五個漢字
說明:這里只介紹使用點陣字型檔。
准備工作:
1、首先必須創建相應的點陣信息
我們來創建一個16×16的兩個漢字的點陣,其實很簡單,你在紙上畫一個行列
各有16個格子的方塊出來,然後按其大小,在裡面寫一個字,比如」成「,建
議你寫得粗一點,這時你會發現有些格子中被字的筆畫穿過,有的仍是空格
子,現在你把沒有筆畫穿過的記為0,有筆畫的記為1,從第一行開始,將這個
16×16的「點陣」的信息記下來,由於每行有16個位,所以需要2個位元組來記錄一
行,共16行,所以共需2×16=32個位元組來保存一個字的「點陣」.
比如:漢-->00000h,04008h,037fch,01008h,08208h,06208h,02210h,00910h
01120h,020A0h,0E040h,020A0h,02110h,02208h,0240Eh,00804h
當然我這個「點陣」是從別的字型檔里載取出來的,但上面的方法絕對是可行的
點陣本質上就是這樣生成的。
2、編寫一個顯示一個像素的子程序
面臨的任務:在圖形模式下,在屏幕上列印一個像素點
分析:
所需的變數:初始的左上角的坐標值x0,y0
默認參數: 默認解析度為640×480×16色模式
(因為這是VGA標准BIOS支持的模式)
默認顏色為黑底黃字
實現:(參考了《VGA實用編程技術》羅健軍 清華大學出版社 1995)
;功能:
; 在指定的屏幕位置用指定的顏色畫一個點
;入口參數:
; bx = x0 象素在屏幕上的X坐標
; ax = y0 象素在屏幕上的Y坐標
; cl = color 象素的顏色值
writePix proc
linelen = 80 ;640*480*16色模式下一條掃描線佔用的位元組數
;=Width/8
;計算象素點的位置
push es
push bp
push dx
push ax
push di
push cx
push bx

mov bp,sp
mov cl,3
shr bx,cl ;X0/8
mov cx,linelen
mul cx
add ax,bx ;至此ax中為像素點的偏移,dx為頁號
mov di,ax

;設置映象屏蔽寄存器
mov dx,sequen_ctl
mov al,2
out dx,al
inc dx
mov al,0fh ;四個位面全部充許寫
out dx,al
;選擇寫方式2
mov dx,graphi_ctl
mov al,5
out dx,al
inc dx
mov al,2
out dx,al
;計算屏蔽碼,並設置位屏蔽寄存器
dec dx
mov al,8
out dx,al
mov cx,[bp] ;取出X坐標
and cl,7
mov al,80h
shr al,cl
inc dx
out dx,al
;寫數據
mov ax,vgaseg ;ES段指向顯存地址0a000h
mov es,ax
mov ax,[bp+2] ;取顏色值
mov ah,es:[di] ;讀一次使屏蔽寄存器有效
mov es:[di],al ;寫入顯示存儲器
pop bx
pop cx
pop di
pop ax
pop dx
pop bp
pop es
ret
writePix endp
3、編寫一個輸出一個漢字圖形字元的子程序,有了2的基礎這一步顯得比較容易,實現
如下:
;在圖形模式下顯示一個漢字
;輸入參數:
; BX=x0 初始左上角X坐標
; AX=y0 初始左上角Y坐標
; CX=color 其實只是cl表示顏色
; ds:si=buff 字元點陣信息首地址
;返回值:無
DispZhC proc
push si
push bp
push ax
push bx
push cx
push dx
mov bp,sp
xor dx,dx ;dx 當前行
jmp a1
Disp:
inc si
inc si ;指向下一個字
inc dx ;行記數加一
a1:
cmp dx,16 ;當前行為0-15,因為是16*16點陣
je Done
xor cx,cx ;cx 當前列初始化
mov bx,word ptr [si] ;讀入一行的點陣信息,一行兩個位元組表示
DispL:
cmp cx,16
je Disp ;換行
or cx,cx ;清零CF
shl bx,1
jc DispP ;如果當前位是1,顯示一個點
inc cx
jmp DispL
DispP:
push ax
push bx
push cx
mov ax,[bp+6]
add ax,dx
mov bx,[bp+4]
add bx,cx
mov cx,[bp+2] ;顏色值在cl中
call writePix
pop cx
inc cx
pop bx
pop ax
jmp DispL
Done:
pop dx
pop cx
pop bx
pop ax
pop bp
pop si
ret
DispZhC endp

4、編寫一個輸出一個字元串的子程序
面臨的任務:你已經擁有顯示一個字元的子程序,現在要對它連續調用,完整
地顯示緩沖區中的全部漢字點陣。
分析:
所需的變數:整個字元串初始的左上角坐標x0,y0
字元串長度
在顯示每個字元時傳遞給子程序的左上角坐標x1,y1
默認參數: 默認為16點陣
默認字間距為5個像素
程序主要結構:
一個單重循環,按字元串長度進行循環。
我的實現:
;在圖形模式下顯示指定長度的字元串
;輸入參數:
; ds:si 字元串點陣緩沖區的首地址
; ax=y0 字元串第一個字元左上角的Y坐標
; bx=x0 字元串第一個字元左上角的X坐標
; ch=n
; cl=color
;返回值:無
DefDis = 5 ;每兩個符號間的默認間距為5個像素
CharWidth = 16 ;默認為16點陣,這也是每個字元的像素寬度
DispZhS proc
push bp
push ax
push bx
push ds
push si
push cx
push dx
mov bp,sp
xor dx,dx
jmp s1
nextChar: ;指向下一個要輸出的字元
add si,32
add bx,DefDis+CharWidth
s1:
cmp dh,ch ;是否已經輸出了指定個數的字元
je Dones
call DispZhc
inc dh
jmp nextChar
Dones:
pop dx
pop cx
pop si
pop ds
pop bx
pop ax
pop bp
ret
DispZhS endp
5、標准VGA進入圖形模式的方法
;進入640×480×16色模式
;setmode:
;對640*480*16和320*論200*256是標准VGA模式,在各種VGA上都分別為12h和13h
mov ax, 12h
int 10h 19_24.rar (39.92 KB)

關於中文支持的幾點想法:
1、「字元集」只是面向用戶的對問題的高層次的抽象。
當你把中文文檔保存在軟盤上帶回家時,上面存放著的是「字元集」中編碼的集合,它們以一種成為標準的方式定義著唯一的一個現實世界存在的漢字。但另一方面,這些編碼本身並不說明任何其它關於這個漢字的信息,比如發音?偏旁?等等,當你在另外一台機器上查看這個文檔時,必需有一個「顯示層」處在人和計算機之間,而這個顯示層如何實現並不重要,唯一重要的是它也必需知道編碼與漢字的對應關系,當它讀到一個處於某個「字元集」的編碼時,它就通過自身維護著的一個代碼轉換表將標準的編碼轉換成自己的字形信息碼,這是一個查表的過程,之後它根據查找到的信息「繪制」出一個特定的漢字。
2、這就意味著重要的是標准,而不是實現,當你要在一個英文平台上顯示漢字時,唯一困難的是確定一個相互不沖突的標准字元集,至於要顯示出什麼形狀根本不是問題。
3、為了確保兼容和跨平台,從軟體的角度說最好自帶字型檔,通過這個實例清楚了如何做到自帶字型檔,事實上因為這里實現的程序是以字而不是象通常那樣以位元組為單位讀字形信息,造成通常點陣字型檔中的編碼無法直接拿來用,那樣字的兩邊恰好顛倒,必須對每兩個位元組交換一次才能被它正確顯示出來。但是不難通過修改DispZhC中的代碼實現通用。
4、要實現矢量字形原理是一樣的,但是需要較多的數學方法,這就知道了理論的用途。想想為什麼一些計算機大師最初的動力竟是因為酷愛游戲。

㈡ 急需要一款點陣字型檔生成器,希望哪位大神提供一下,謝謝啦!

前言:此版本的軟體安裝包附加破解教程我可以給您一份,不過僅供個人使用,切勿傳播,希望可以幫助您

使用教程

1、編碼選擇

編碼選擇是首先確定用戶需要哪種字型檔,常見的編碼有英文的ASCII、中文GB2312、GBK、GB2312繁體、台灣BIG5編碼、日文的Shift_JIS、韓文的HANGUL等,還有法文、德文、羅馬文等常見的拉丁文字。

2、字體設置

字體設置是用戶對於外觀的需求,可以提現產品的個性,不同的編碼對於的字體會有不同的顯示,如中文常用宋體、仿宋、黑體、雅黑,也可以用比較個性的字體如各種手寫字體等等。

3、位置大小

由於應用不同,所需的單個字元大小也會有相應的區別,這里就是根據需求確定單個字元的大小,比如16*16,24*24等等。設置完大小後,則需要根據大小調整字體的大小及橫向、縱向偏移位置。使得顯示的字元能完整的顯示在預覽窗內,並且有合適的留白空間。

點擊下載點陣字型檔生成器

閱讀全文

與3232點陣字型檔linux相關的資料

熱點內容
什麼是機靈數據 瀏覽:724
ecshop配置文件 瀏覽:116
excel兩個表格怎麼對比相同數據 瀏覽:383
ps4港服文件怎麼弄 瀏覽:560
蘋果6splusnote5s6 瀏覽:426
定向流量30G都包括哪些APP 瀏覽:352
apple和瑤瑤綜藝 瀏覽:351
打開word所在文件夾自動彈出 瀏覽:390
c怎麼編程改名字 瀏覽:146
哪些電視劇app不帶logo的 瀏覽:406
開機後桌面變黑色桌面文件丟失 瀏覽:136
網路電視怎麼用遙控器 瀏覽:953
我的世界json打開失敗 瀏覽:867
易語言56教程視頻 瀏覽:610
linux開機啟動文件 瀏覽:773
給寶寶唱兒歌用什麼app 瀏覽:354
投標文件為什麼要使用cad軟體 瀏覽:522
一季度保險業務數據如何看 瀏覽:398
為什麼行車記錄儀文件大小為0 瀏覽:795
win10筆記本傳輸文件 瀏覽:735

友情鏈接