鱼C论坛

 找回密码
 立即注册
查看: 2221|回复: 3

[已解决]计算问题

[复制链接]
发表于 2017-10-12 12:55:34 | 显示全部楼层 |阅读模式

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

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

x
QQ截图20171012125322.png 段地址怎么是SA+10?
最佳答案
2017-10-13 18:12:19
你可以这样理解。

计算机生成的程序开始的物理地址是段地址为SA,偏移地址为0所在的地方,即SA:0

由于生成的时候计算机自己加了PSP这一坨进去,而这一坨的长度为100H(256个字节)

所以,你自己编写的程序开始的地方紧跟PSP这一坨结束的地方后,

其所位于的物理地址是段地址为SA,偏移地址为100H,即SA:100H

SA:100H  与  (SA+10):0其实就是同一个地址。

假设SA=0CF8,
SA:100H就是0CF8:100,所以其实际物理地址计算出来后为0xD080
SA+10:0就是0CF8+10:0,即0D08:0,其代表的物理地址计算出来以后0xD080。

上面的10或者100都是16进制的,所以他们实际上就是同一个数。

上面写成了SA+10:0,可能导致脑袋有点混乱,这代表你还没看习惯逻辑地址表示方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-12 12:59:58 | 显示全部楼层
看图片中的算数,首先从地址SA:0开始,存储256个字节,256 = 16*16,算式结合一下,合并同类项,提出*16,(SA+16)*16,那么这么看来段地址就可以是(SA+16)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 15:19:28 | 显示全部楼层
(SA+16) X 16+0

10H 为 16, 段地址为SA+16, 偏移为0

所以可以表示为SA+10:0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-13 18:12:19 | 显示全部楼层    本楼为最佳答案   
你可以这样理解。

计算机生成的程序开始的物理地址是段地址为SA,偏移地址为0所在的地方,即SA:0

由于生成的时候计算机自己加了PSP这一坨进去,而这一坨的长度为100H(256个字节)

所以,你自己编写的程序开始的地方紧跟PSP这一坨结束的地方后,

其所位于的物理地址是段地址为SA,偏移地址为100H,即SA:100H

SA:100H  与  (SA+10):0其实就是同一个地址。

假设SA=0CF8,
SA:100H就是0CF8:100,所以其实际物理地址计算出来后为0xD080
SA+10:0就是0CF8+10:0,即0D08:0,其代表的物理地址计算出来以后0xD080。

上面的10或者100都是16进制的,所以他们实际上就是同一个数。

上面写成了SA+10:0,可能导致脑袋有点混乱,这代表你还没看习惯逻辑地址表示方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 22:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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