?? graph.asm
字號:
.file "graph.asm"
.c_mode
.copy "vc5402.inc"
.def _gethz
.def _getasc
.data
hz16_base .set 0A000H
asc32_base .set 4F80H
.text
*********************************************************************************
* *
* 函數定義:void _gethz(uint apcode, uchar *ptr) *
* 功 能:取16*16點陣漢字字模 *
* *
* 入口參數:A ---- 漢字碼序號apcode *
* (SP+n) ---- 字模緩沖區地址指針ptr,如果是.far_mode模式則n為2,否則n為1 *
* 16*16點陣漢字字模有16行16列,以行排列,自左到右,從上至下 *
* 字模以16位字形式存儲,每行16位,占1個存儲單元 *
* 左點占高位,右點占低位 *
* 每個16*16點陣ASCII碼字模占16個16位字的儲存單元 *
* 8178個16*16點陣漢字共占8178*16 = 130848 = 128K個儲存單元 *
* 16*16點陣漢字字模定位于'VC5402程序存儲器的Flash中 *
* 地址為:A0000H~BFF1FH *
* 出口參數:字模從字模表讀入(SP+n)所指向的緩沖區中 *
* 資源使用:B,AR0 *
* *
*********************************************************************************
_gethz: .if __far_mode ; 堆棧指針SP調整到偶邊界
.else
FRAME -1
.endif
ADD #hz16_base,A ; 計算16*16點陣漢字字模的絕對地址
SFTL A,4,A
LD 2H,B
STLM B,AR0 ; AR0←緩沖區地址指針
RPT #15
READA *AR0+
.if __far_mode ; 函數返回
FRET
.else
FRAME 1
RET
.endif
*********************************************************************************
* *
* 函數定義:void _getASC(uint apcode, uchar *ptr) *
* 功 能:取32*16點陣ASCII字模 *
* *
* 入口參數:A ---- ASC序號apcode *
* (SP+n) ---- 字模緩沖區地址指針ptr,如果是.far_mode模式則n為2,否則n為1 *
* 16*16點陣ASC字模有16行16列,以行排列,自左到右,從上至下 *
* 字模以16位字形式存儲,每行16位,占1個存儲單元 *
* 左點占高位,右點占低位 *
* 每個16*16點陣ASCII碼字模占16個16位字的儲存單元 *
* 8178個16*16點陣漢字共占8178*16 = 130848 = 128K個儲存單元 *
* 16*16點陣漢字字模定位于'VC5402程序存儲器的Flash中 *
* 地址為:A0000H~BFF1FH *
* 出口參數:字模從字模表讀入(SP+n)所指向的緩沖區中 *
* 資源使用:B,AR0 *
* *
*********************************************************************************
_getasc: .if __far_mode ; 堆棧指針SP調整到偶邊界
.else
FRAME -1
.endif
ADD #asc32_base,A ; 計算16*16點陣漢字字模的絕對地址
SFTL A,5,A
LD 2H,B
STLM B,AR0 ; AR0←緩沖區地址指針
RPT #31
READA *AR0+
.if __far_mode ; 函數返回
FRET
.else
FRAME 1
RET
.endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -