汇编语言使用Dosbox-x显示中文字符

dosbox环境下运行汇编语言不能显示中文,可以使用dosbox-x显示中文,dosbox-x支持显示gb2312编码的中文。学校第一个汇编语言程序是显示学号姓名,姓名是中文,只能使用拼音代替,但是使用dosbox-x就可以实现显示中文名。

开发环境使用vscode,下载一个插件就可以用dosbox-x了

下载MASM/TASM插件,选择DOS环境模拟器为dosbox-x

源代码

.486
DATA SEGMENT USE16
    MESG1 DB 'B23051217'
    ;MESG2 DB 'liumou','$'
    MESG2 DB '刘','某','$'  ;Constant too large
    ;MESG2 DW 0F5C1H,0B3C4H,'$'
DATA ENDS

CODE SEGMENT USE16
         ASSUME CS:CODE,DS:DATA

    BEG: 
         MOV    AX,DATA
         MOV    DS,AX

         MOV    AH, 9
         MOV    DX, OFFSET MESG1
         INT    21H

         MOV    AH, 4CH
         INT    21H
CODE ENDS
         END BEG

dosbox-x支持gb2312编码,一般都是utf-8,要先通过编码保存为gb2312,否则会乱码

定义的语句为MESG2 DB '刘','某','$',使用的是DB,如果用DW会报错Constant too large,DD会乱码,中文字符在不同编码下大小不同,gb2312编码的中文字符是两个字节,

例如汉字‘刘’的GB2312编码是C1F5H,那在内存中放C1F5H就可以正确显示汉字,如果放的不是这个,就会乱码

运行效果如下

调试看一下内存里放的什么

可以看到内存里放的B23051217的ASCII码紧跟着后面就是C1F5也就是‘刘’的gb2312编码,C4B3是‘某’的编码,24H是‘$’字符串结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值