当前位置: 代码迷 >> 汇编语言 >> 请教在纯DOS汇编,怎么才能显示汉字
  详细解决方案

请教在纯DOS汇编,怎么才能显示汉字

热度:893   发布时间:2013-02-26 00:00:00.0
请问在纯DOS汇编,如何才能显示汉字?
请问在纯DOS汇编,如何才能显示汉字?

.model small 
.stack 200h 
.data 
  szMsg db 'Hello World!我是李生',13,10,'$' 
   
.CODE 
START: 
  mov ax,@data 
  mov ds,ax 
  lea dx,szMsg 
  mov ah,9 
  int 21h 
   
  ;暂停,任意键关闭 
  mov ah,1 
  int 21h 
  mov ah,4ch ;结束,可以修改al设置返回码 
  int 21h 
   
END START 

编译之后,这个“我是李生”是乱码,请教如何才能显示汉字?
谢谢先

------解决方案--------------------------------------------------------
系统中断提供的是ascii,要用第三方的库,如c的dos16运行库
------解决方案--------------------------------------------------------
可以使用UCDOS
------解决方案--------------------------------------------------------
C的是有,汇编的没见过

适用于C语言编程中汉字显示程序。以下是使用范例:
http://download.csdn.net/source/604747
------解决方案--------------------------------------------------------
我以前一个同事用turboc在没有中文DOS的情形下显示出有限个的汉字,应该是硬画出来的。
------解决方案--------------------------------------------------------
两种方法:
1. 使用图形模式,逐点画出来。缺点是有点麻烦,但可以显示任意多的汉字。
2. 文本模式,修改EGA/VGA字模,INT 10h Ax=1110h。优点是简单,而且兼容INT 21h、INT 10h的字符输出功能,但是只能(同屏)显示很少的汉字,最多256个吧(实际不可能,因为用单个8x16/9x16的字模显示汉字有点勉强,至少要16x16才能看,这样就只剩下128个,还要保留一部分常用的ASCII符号)。


------解决方案--------------------------------------------------------
你把源程序贴出来看看。
------解决方案--------------------------------------------------------
中文DOS下 (比如CCDOS, TWAY32, UCDOS等), 直接输出字符串(含汉字)即可。
如果你不用中文系统,有两种方式:
一种是文本模式显示汉字,有点复杂,将一个汉字拆分成两个字符并将其字模写入显卡的字符发生器;
另一种简单点,是图形模式下在屏幕上画出汉字的每一点。
------解决方案--------------------------------------------------------
学习了~~~
  相关解决方案