鱼C论坛

 找回密码
 立即注册
查看: 82|回复: 2

[已解决]dos 寻址

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么我dos下debug d命令查询的075A:0和0759:10内容不一致?
Snipaste_2025-05-01_20-48-10.png
最佳答案
7 天前
关于DEBUG中075A:0和0759:10显示不一致的解释

在实模式下,物理地址的计算公式为:
物理地址 = 段基址 × 16 + 偏移量

  • 地址计算验证
    075A:0 的物理地址 = 075A0h (075Ah × 10h)
    0759:10 的物理地址 = 07590h + 10h = 075A0h
    理论上这两个地址指向同一个物理内存位置
  • 可能原因分析
    • 执行过写内存操作(如E命令、A命令或程序运行)
    • DEBUG显示范围覆盖了相邻区域(D命令默认显示128字节)
    • 虚拟环境/模拟器的内存管理差异(如DOSBox等)



验证步骤建议
1. 立即连续执行两个D命令验证:

  1. d 075A:0
  2. d 0759:10
复制代码

2. 检查两次输出的前16字节是否一致(对应相同物理地址)
3. 若仍不一致,可能是模拟器BUG或硬件级内存映射问题

注意:DEBUG中所有会修改寄存器的命令(如T/P/G)都可能改变内存状态。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层    本楼为最佳答案   
关于DEBUG中075A:0和0759:10显示不一致的解释

在实模式下,物理地址的计算公式为:
物理地址 = 段基址 × 16 + 偏移量

  • 地址计算验证
    075A:0 的物理地址 = 075A0h (075Ah × 10h)
    0759:10 的物理地址 = 07590h + 10h = 075A0h
    理论上这两个地址指向同一个物理内存位置
  • 可能原因分析
    • 执行过写内存操作(如E命令、A命令或程序运行)
    • DEBUG显示范围覆盖了相邻区域(D命令默认显示128字节)
    • 虚拟环境/模拟器的内存管理差异(如DOSBox等)



验证步骤建议
1. 立即连续执行两个D命令验证:

  1. d 075A:0
  2. d 0759:10
复制代码

2. 检查两次输出的前16字节是否一致(对应相同物理地址)
3. 若仍不一致,可能是模拟器BUG或硬件级内存映射问题

注意:DEBUG中所有会修改寄存器的命令(如T/P/G)都可能改变内存状态。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
FishC 发表于 2025-5-1 20:50
关于DEBUG中075A:0和0759:10显示不一致的解释

在实模式下,物理地址的计算公式为:

抱歉,眼花了……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-8 09:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表