中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何在DEBUG中显示汉字? 上一主题 | 下一主题
qzxcl
初级用户




积分 136
发帖 8
注册 2002-10-23
状态 离线
『楼 主』:  如何在DEBUG中显示汉字? 使用 LLM 解释/回答一下



2002-11-6 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ko20010214
版主




积分 7294
发帖 1628
注册 2002-10-16
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

这个问题的答案我在论坛里看到过。一下子没找到。总之是将debug稍作手术,让它支持双字节(汉字是用双字节存储和显示的)就OK了。具体改哪,忘记了。。。呵呵,仔细找找吧。




ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
2002-11-6 00:00
查看资料  发送邮件  发短消息  网志  OICQ (16959102)  编辑帖子  回复  引用回复
qzxcl
初级用户




积分 136
发帖 8
注册 2002-10-23
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

请问ko20010214朋友,您的邮箱号码。
谢谢。
本人的邮箱是qzxcl@yahoo.com.cn


2002-11-7 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
随风顺
初级用户




积分 196
发帖 35
注册 2002-10-14
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

将Debug.exe中偏移1262H处的"7E"改为"FF"就可以了
你可以试试看




http://ie.zzu.edu.cn
Email:Jathenal@mail.edu.cn
QQ:26165434 希望能和大家做个朋友
2002-11-7 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (26165434)  编辑帖子  回复  引用回复
ko20010214
版主




积分 7294
发帖 1628
注册 2002-10-16
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

我的邮箱是ko20010214@sina.com




ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
2002-11-7 00:00
查看资料  发送邮件  发短消息  网志  OICQ (16959102)  编辑帖子  回复  引用回复
yzf320
初级用户




积分 103
发帖 1
注册 2002-10-31
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

想用debug显示汉字。方法是这样的。
-debug
-e 1262
1269:1262 7f.ff
-w
-q
可以了就是这样的。


2002-11-9 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
gha
初级用户

崇拜巴蒂


积分 137
发帖 13
注册 2002-10-20
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

呵呵!楼上说的很对!
想必是高手了!




俺们那嘎都住艺术院``
俺们那嘎都住破房子''''
俺们那嘎都是忠实的网虫````
俺们那嘎都是大帅哥~~``~~~~
2002-11-9 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qzxcl
初级用户




积分 136
发帖 8
注册 2002-10-23
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

随风顺先生,你好。你的邮箱号码是否有误?


2002-11-11 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
柳飘逸
初级用户




积分 119
发帖 11
注册 2002-12-14
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

-debug
-e 1262
0af2:1262 b8
这是我的机子上显示的,??
为什么我的是B8




ぁ拒签ぁ!!!!!!!!!!!!!
2002-12-14 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Roy
管理员

專業島民



积分 4869
发帖 1633
注册 2002-12-10
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

C:\WINDOWS>debug
-e 1262
0EA3:1262 05.
这是我的机子上显示的,??
为什么我的是05




我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
2002-12-14 00:00
查看资料  发短消息  网志   编辑帖子  回复  引用回复
sunfangyu123
初级用户




积分 106
发帖 2
注册 2003-5-10
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

为什么我的电脑上显示的是出错信息


2003-5-10 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
linxipiao
初级用户




积分 114
发帖 4
注册 2003-7-16
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

不好了,没人接着来啊


2003-7-17 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
LanE
银牌会员




积分 1833
发帖 648
注册 2002-11-8
状态 离线
『第 13 楼』:   [已使用 LLM 解释]

过程如下:
c:\>copy c:\windows\command\debug.exe d:\debug.dat (改名称,因为debug对*.exe要特殊处理的,所以要改扩展名;换地方,因为我习惯这样)
c:\>debug d:\debug.dat
-e 1262
XXXX:1262 7F.ff
-w
Writing 0504A bytes
-q
c:\>ren d:\debug.dat *.exe
然后在d:\就有一个支持汉字的debug.exe了,如果你确定不要原先的了,就把它复制到c:\windows\command下面去覆盖原来的吧.
LLM 解释

DEBUG 显示汉字的技术分析

原方法解析

用户提供的方法通过修改 DEBUG.EXE 文件的 1262 偏移处字节(将 0x7F 改为 0xFF)来实现汉字显示,这实际上是修改了 DEBUG 的屏幕显示属性控制字节。该字节控制 DEBUG 界面中字符显示的属性掩码,原始值 0x7F 限制了高字节位(汉字内码的高字节通常 >0xA0)的显示,修改为 0xFF 后解除了此限制。

技术背景

  • DOS 字符显示机制:传统 DEBUG 设计用于处理 ASCII 字符(0x00-0x7F),对高字节字符(如汉字内码 0xA1-0xFE)会进行过滤。
  • 汉字内码特性:GB2312 汉字采用双字节编码,高字节范围 0xA1-0xFE,低字节范围 0xA1-0xFF,均超出 ASCII 范围。

多种实现方案

方案一:二进制文件直接修改(用户方法优化版)
REM 创建备份
copy c:\windows\command\debug.exe debug.bak

REM 使用 DEBUG 修改自身
debug debug.exe
-e 1262        ;定位到显示属性控制字节
7F.FF          ;修改为全字节通过掩码
-w             ;写入修改
-q             ;退出

REM 验证修改结果
debug

注意:不同版本 DEBUG.EXE 的偏移地址可能不同(如 MS-DOS 6.22 为 0x1262,Windows 98 版可能为 0x128A),需通过反汇编确认 INT 10h 调用前的属性设置指令。

方案二:使用 HEX 编辑器修改
  1. 使用 UltraEdit 或 WinHex 打开 DEBUG.EXE
  2. 搜索十六进制序列 B0 7F CD 10(MOV AL,7Fh; INT 10h)
  3. 7F 修改为 FF
  4. 保存文件
方案三:汇编级修改(适用于高级用户)
; 修改显示属性设置代码段
original:
MOV AL, 7Fh    ; 原始掩码:仅允许低7位
INT 10h

modified:
MOV AL, 0FFh   ; 修改后:允许全8位
INT 10h

兼容性说明

  • 适用环境:MS-DOS 5.0+、Windows 9x/ME 的实模式 DEBUG
  • 不适用环境:NT 内核系统(CMD 中的 DEBUG 为模拟环境,不支持直接修改)
  • 风险提示:修改系统文件前必须备份,错误修改可能导致 DEBUG 无法运行

替代方案:使用汉字版 DEBUG 工具

  • DEBUGX:第三方修改版,原生支持汉字显示
  • HIEW:十六进制编辑器内置的调试功能支持汉字
  • DOSBox + 汉字系统:在 DOSBox 中加载 UCDOS 或 CCDOS 后运行原版 DEBUG

验证方法

修改后在 DEBUG 中执行以下命令测试汉字显示:

-d 0000:0000                ;查看内存
-e 0000:0000 B0 A1 A2 A3    ;写入汉字内码(如"啊阿埃")
-d 0000:0000                ;确认汉字显示正常

通过上述方法,DEBUG 即可正确显示内存中的汉字内码对应的字符。修改核心是解除 DEBUG 对高字节字符的过滤限制,使其兼容双字节汉字编码。



2003-7-18 00:00
查看资料  发送邮件  发短消息  网志  OICQ (9367907)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: