鱼C论坛

 找回密码
 立即注册
查看: 21|回复: 1

检查点3.1

[复制链接]
发表于 昨天 22:11 | 显示全部楼层 |阅读模式

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

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

x


63988869-5211-4fa5-8c66-9cb0cafd0840.png
各位大神,搞不懂了.
mov ax,1
mov dx,ax
这样为什么 dx=0000:0010
今天刚学 有点懵逼,各位大佬求指教
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 22:11 | 显示全部楼层
您的疑问主要在于对寄存器显示方式的误解。

mov ax,1  
mov dx,ax


执行这两条指令后:AX 的值是 0001h(即十进制 1),DX 的值也会被赋值为 0001h

您看到的 0000:0010 这种格式是**段地址:偏移地址**的表示法,通常出现在 Debug 的 d(dump)命令中,用于显示**内存地址**,而不是寄存器的值。

例如,您可能在 Debug 中执行了:
  1. d 0000:0010
复制代码

这表示显示物理地址 0000h × 16 + 0010h = 00010h 处的内存内容,与 DX 寄存器无关。

正确的查看寄存器值应该用 Debug 的 r 命令,会显示:
  1. AX=0001  BX=...  CX=...  DX=0001  ...
复制代码


如果您的模拟器(如 emu8086)的寄存器窗口显示 DX = 0000:0010,那很可能是您没有正确移动 AX 的值,或者之前有其他赋值影响了 DX(例如 mov dx, 10h)。

请重新检查您的完整代码,并只执行那两行指令,DX 一定等于 0001h(即 1)。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-7 01:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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