鱼C论坛

 找回密码
 立即注册
查看: 4360|回复: 5

[已解决]求助!mov [0],ax这局

[复制链接]
发表于 2019-1-20 22:45:20 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
这句    mov [0],ax    的意思是把ax的值赋给[0]
可[0]是偏移地址啊…偏移地址2c34是什么意思…
最佳答案
2019-1-20 23:54:13
本帖最后由 jackz007 于 2019-1-21 00:13 编辑

       IBM PC 8086 CPU 采用的是 20 位地址总线,内存寻址范围为 00000H - FFFFFH,极限容量是 1 MB。但是,由于数据总线是16位的,我们无法用一个 16 位的值直接表达20位的内存地址,于是,就采用了16位的段加16位偏移的方式进行表达。这样,总共 1 MB 的内存范围可以被划分为 16 个容量为 64 KB 彼此独立的内存段。

       从你的代码可以看出,数据段 DS=1000H,偏移是 0,对应的内存绝对地址应该是 10000H,用 “段:偏移” 的形式表示为 1000 : 0

       ax = 2c34h ,  指令

       mov [0] , ax

       的意思是把 ax 寄存器的值 2c34h (2个字节) 保存到内存地址 1000 : 0 开始的 2 个字节单元中。  
IMG_20190120_224333.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 22:52:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-20 23:54:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-1-21 00:13 编辑

       IBM PC 8086 CPU 采用的是 20 位地址总线,内存寻址范围为 00000H - FFFFFH,极限容量是 1 MB。但是,由于数据总线是16位的,我们无法用一个 16 位的值直接表达20位的内存地址,于是,就采用了16位的段加16位偏移的方式进行表达。这样,总共 1 MB 的内存范围可以被划分为 16 个容量为 64 KB 彼此独立的内存段。

       从你的代码可以看出,数据段 DS=1000H,偏移是 0,对应的内存绝对地址应该是 10000H,用 “段:偏移” 的形式表示为 1000 : 0

       ax = 2c34h ,  指令

       mov [0] , ax

       的意思是把 ax 寄存器的值 2c34h (2个字节) 保存到内存地址 1000 : 0 开始的 2 个字节单元中。  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-26 08:43:37 | 显示全部楼层
mov ax,11316
这里的11316是10进制,转换为16进制是2C34
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-1 19:58:05 | 显示全部楼层
jackz007 发表于 2019-1-20 23:54
IBM PC 8086 CPU 采用的是 20 位地址总线,内存寻址范围为 00000H - FFFFFH,极限容量是 1 MB。但是 ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-1 19:58:40 | 显示全部楼层
行客 发表于 2019-1-26 08:43
mov ax,11316
这里的11316是10进制,转换为16进制是2C34

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 09:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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