;怎样用汇编语言显示姓名?是中文字翼华 最好还能闪烁
;在DOS下用字符当点阵显示汉字
;
;用masm 5.0编译通过
data segment
DISP_C DB 'H' ;填充点阵字符
DISP_A DB 05H ;属性字节,改变此值可达到不同的显示效果
qs1 dw 30h+4*0a0h ;定义显示缓冲区起始位置 30H是列起始位,4为起始行,0A0H
为每行字节数(含属性字节)
qs2 dw 50h+4*0a0h
yi db 7EH,0F8H,22H,88H,1AH,68H,22H,88H
db 02H,08H,1FH,0F0H,11H,10H,1FH,0F0H
db 11H,10H,1FH,0F0H,04H,40H,3FH,0F8H
db 04H,40H,0FFH,0FEH,08H,20H,30H,10H
hua db 04H,40H,04H,48H,08H,58H,08H,60H
db 18H,0C0H,29H,40H,4AH,44H,08H,44H
db 09H,3CH,01H,00H,0FFH,0FEH,01H,00H
db 01H,00H,01H,00H,01H,00H,01H,00H
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
MOV AH,0FH ;CLS
INT 10H
MOV AH,0
INT 10H
;-------------------------
MOV AX,0B800H ;DISP
MOV ES,AX
MOV SI,QS1
MOV BX,OFFSET yi
call disp_11
MOV SI,QS2
MOV BX,OFFSET HUA
call disp_11
wait1:
mov ah,01
int 16h
jz wait1
RET
main endp
;==========================
disp_11 PROC NEAR
MOV CX,16 ;每次读入2字节,需读16次 (共32字节)
N1:
MOV AX,[BX]
XCHG AH,AL
CALL DISP
INC BX
INC BX
ADD SI,0A0H-32 ;DISP NEXT 行
LOOP N1
ret
DISP_11 ENDP
;========================
DISP PROC NEAR ;每次显示2个字节共16位
PUSH CX
MOV CX,16
N2:
ROL AX,1
JC DISP1
MOV DL,' '
JMP DISP_K
DISP1:
MOV DL,DISP_C
DISP_K:
MOV ES:[SI],DL
MOV DL,DISP_A
INC SI
MOV ES:[SI],DL
INC SI
LOOP N2
POP CX
RET
;========================
code ends
end start
如果使用51单片机
1用keil软件编写汇编语言程序编译后生成hex文件
2用proteus软件连接模拟开关,点阵屏等硬件
3把hex文件放入proteus软件中运行想要什么效果都可以实现........包括字体字号字的颜色是否闪烁,闪烁时间...都可以设置
你说的是16位汇编吧。它用的ASCII码,没有中文。。
你能通过描点,在屏幕上显示汉字
前提:在什么样的显示器或者显示屏上面显示你说的姓名?
要求中文方式还是英文方式?