请教在纯DOS汇编,怎么才能显示汉字
发布时间:2010-06-14 15:51:23 文章来源:www.iduyao.cn 采编人员:星星草
请问在纯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等), 直接输出字符串(含汉字)即可。
如果你不用中文系统,有两种方式:
一种是文本模式显示汉字,有点复杂,将一个汉字拆分成两个字符并将其字模写入显卡的字符发生器;
另一种简单点,是图形模式下在屏幕上画出汉字的每一点。
------解决方案--------------------
学习了~~~
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
MSN通讯协议逆向
MSN 进行数据通讯中,据说用了TWN认证,通过SSL/TLS连接到login.passport.com和 loginnet.passportr.com 等服务器。
...
-
win7+64位cpu的exe反汇编问题,多次问人,无果
vs20008写的一个很简单的c++控制台程序
平台是:win7 64位操作系统
用od进行反汇编,...
-
可能很白痴的问题:想给ax赋一个负数怎么做?
比如想要赋一个-5给ax,是不是只有求出这个-5的补码,然后mov进这个补码这一种方法?
------...
-
居然显示不出负数来,悲剧
Assembly code
.386
.model flat,stdcall
include kernel32.inc
includelib kernel32.lib
include ms...
-
call far ptr '标号'的问题[在线等答案]
为什么ax会是1010?不是1006??求详细解答
难道call far ptr不是执行了push cs,push ip,jm...
-
CPU的程序计数器PC和指令指针寄存器IP是一个东西吗?
看上去好像功能完全一样,又觉得不应该是一回事,求教
------解决方案----------...
-
菜鸟问题,高人来帮忙
编程,统计data段中数值为8的字节的个数,用ax保存结果
我的代码
Assembly code
assume cs:code,ds:data
data se...
-
一个死循环问题
什么原因造成内循环才刚循环一次还没完,到了loop s1的时候cx突然变成F?
Assembly code
assume cs:codesg,ds:datas...
-
初学MUL乘法指令,写法求解释下
MUL r8/m8 ;无符号字节乘:AX←AL×r8/m8
MUL r16/m16 ;无符号字乘:DX.AX←AX×r16/...
-
汇编如何 取到8051的P0口的内容呢?
Assembly code
ORG 0000H
AJMP START
ORG 0030H
START: MOV P0,#00H
LOOP: ...