📄 ccw2pr.asm
字号:
; 汉字写入子程序(图形方式)CCW2_PR
; 占用内部资源:O_XL,O_YL,CODE,COUNT1,A,B,DPTR
; 内部调用子程序:PR1
; 连接字库: CCTAB
; 程序调用入口: CCW2_PR
; 程序输入变量: O_XL,O_YL,CODE
CCW2_PR:MOV A,CODE ; 计算汉字字模数据首地址
MOV B,#20H
MUL AB
MOV DPTR,#CGTAB ; 汉字库入口地址
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV A,O_YL ; 计算光标地址
MOV B,#PARA1 ; PARA1值等于SYSTEM SET 指令P9
MUL AB ; 而P10=0
ADD A,O_XL
MOV O_XL,A ; 存光标地址低字节
MOV A,B
ADDC A,#40H ; 加入显示二区起始地址SAD2H
MOV O_YL,A ; 存光标地址高字节
MOV COM,#4FH ; CSRDIR 代码(下移)
LCALL PR1
MOV COUNT1,#02H ; 设置计数器1=2
CCW2_1: MOV COM,#46H ; CSRW 代码
LCALL PR1
MOV DAT1,O_XL ; 设置光标地址CSR
LCALL PR2
MOV DAT1,O_YL
LCALL PR2
MOV COM,#42H ; MWRITE 代码
LCALL PR1
MOV COUNT2,#10H ; 设置计数器2=16
CCW2_2: CLR A
MOVC A,@A+DPTR ; 取字模数据
MOV DAT1,A
INC DPTR ; 指针加一
LCALL PR2 ; 写入数据
DJNZ COUNT2,CCW2_2 ; 循环
MOV A,O_XL ; 修正光标地址
ADD A,#01H ; (加一)
MOV O_XL,A
MOV A,O_YL
ADDC A,#00H
MOV O_YL,A
DJNZ COUNT1,CCW2_1 ; 循环
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -