简爱 发表于 2013-7-22 06:54:17

关于寻址范围



请问知道偏移地址16位,后面的变化范围怎么求的。

还有 知道段地址,寻址范围是怎么求的。

这两个范围都是寻址范围吗?

忘忧的记忆 发表于 2013-7-22 08:22:16

物理地址=段地址:偏移地址
计算的话 段地址后加个0再加上偏移,比如,1000:200则是10200=10000+200
偏移地址是16位,每一位都可以0,1变化,最小0000h最大则是16个位都是1则是ffffh

牡丹花下死做鬼 发表于 2013-7-22 09:07:20

物理地址 = 段地址:偏移地址
= 段地址 * 16 + 偏移地址 (主意* 16 是应为地址是以十六进制显示的其实就是加个0)
比如1111:1111 = 11110+1111 = 12221 这样 16位的段地址 和 16位 的偏移地址 就经过“血汗加工厂”变成20位的物理地址
现在段地址已经确定是1000H偏移地址 就是从0 -- ffff (0 -- 1111111111111111)
ffff = 1111111111111111(这个自己查计算器)
那么寻址能力就是 1000:0 -- 1000:ffff
也就是1000H*16+0 -- 1000H*16+ffff
于是得出结论
10000 -- 1ffff
还有什么问题吗??

Crazy迷恋. 发表于 2013-7-22 09:12:24

牡丹花下死做鬼 发表于 2013-7-22 09:07 static/image/common/back.gif
物理地址 = 段地址:偏移地址
= 段地址 * 16 + 偏移地址 (主意* 16 是应为地址是以十六进制显示的其实就 ...

牡丹回答 好详细~~~~{:5_109:}

牡丹花下死做鬼 发表于 2013-7-22 09:15:32

Crazy迷恋. 发表于 2013-7-22 09:12 static/image/common/back.gif
牡丹回答 好详细~~~~

应为现实生活中 我们这里 没人喜欢编程我压抑!{:5_96:}
而且汇编我也是刚刚学的 所以很激情的说{:5_95:}

遗忘c年华 发表于 2013-7-22 10:22:07

哎,又一个不专心看教程视频的童鞋~

简爱 发表于 2013-7-22 11:31:38

忘忧的记忆 发表于 2013-7-22 08:22 static/image/common/back.gif
物理地址=段地址:偏移地址
计算的话 段地址后加个0再加上偏移,比如,1000:200则是10200=10000+200
偏移 ...

额 还是不懂 可以说明下为什么+200吗?或者是说下视频哪里我掌握的不好。

简爱 发表于 2013-7-22 11:35:35

牡丹花下死做鬼 发表于 2013-7-22 09:07 static/image/common/back.gif
物理地址 = 段地址:偏移地址
= 段地址 * 16 + 偏移地址 (主意* 16 是应为地址是以十六进制显示的其实就 ...

额谢谢   请教下上面段地址是1000H,为什么就能得出偏移地址是0—ffff。对于这部分知识掌握很迷惑请问如何分析。

简爱 发表于 2013-7-22 11:36:45

遗忘c年华 发表于 2013-7-22 10:22 static/image/common/back.gif
哎,又一个不专心看教程视频的童鞋~

请教下 有什么学习技巧吗?

牡丹花下死做鬼 发表于 2013-7-22 11:51:38

简爱 发表于 2013-7-22 11:35 static/image/common/back.gif
额谢谢   请教下上面段地址是1000H,为什么就能得出偏移地址是0—ffff。对于这部分知识掌握很迷惑请问 ...

不是根据段地址得出的
是因为偏移地址是16bit所以范围当然是0000000000000000----1111111111111111
转换成 十六进制就是0000 -- ffff

简爱 发表于 2013-7-22 11:59:55

牡丹花下死做鬼 发表于 2013-7-22 11:51 static/image/common/back.gif
不是根据段地址得出的
是因为偏移地址是16bit所以范围当然是0000000000000000----1111111111111111
...

额 终于懂了这个   谢谢 不过第二个还是不懂。段地址是1000H ,寻址范围是怎么求。

牡丹花下死做鬼 发表于 2013-7-22 12:12:09

简爱 发表于 2013-7-22 11:59 static/image/common/back.gif
额 终于懂了这个   谢谢 不过第二个还是不懂。段地址是1000H ,寻址范围是怎么求。

物理地址 =段地址 * 16 + 偏移地址 这个OK? 不OK看小甲鱼视屏 这是知识点
应为 地址是十六进制 所以* 16 就是最后加个0 如 1000H * 16 = 10000 不理解我也没办法
那么段地址 已经确定 物理地址的变化就取决于偏移地址 你知道了 偏移地址的范围
公式在上面 套进去
就是1000H*16+0 - 1000H * 16 + 1111111111111111
也就是 10000 -- 1ffff
这回看懂没

Crazy迷恋. 发表于 2013-7-22 12:39:30

简爱 发表于 2013-7-22 11:36 http://bbs.fishc.com/static/image/common/back.gif
请教下 有什么学习技巧吗?

做笔记~~~~就像我们听课~~~做做必要的笔记是应该有的 。人脑不是硬盘~~~~容易遗忘之类的。做笔记可以巩固复习,加深印象。还能查知识点~~~

简爱 发表于 2013-7-22 12:41:33

牡丹花下死做鬼 发表于 2013-7-22 12:12 static/image/common/back.gif
物理地址 =段地址 * 16 + 偏移地址 这个OK? 不OK看小甲鱼视屏 这是知识点
应为 地址是十六进制 所以* ...

太谢谢了 公式那个懂 ×16也懂 就是一直搞不懂物理地址变化取决于偏移地址、现在懂了 谢谢

简爱 发表于 2013-7-22 13:04:38

Crazy迷恋. 发表于 2013-7-22 12:39 static/image/common/back.gif
做笔记~~~~就像我们听课~~~做做必要的笔记是应该有的 。人脑不是硬盘~~~~容易遗忘之类的。做笔记可以巩 ...

做笔记到是有。就是计算 容易忘记。

Crazy迷恋. 发表于 2013-7-22 13:08:07

简爱 发表于 2013-7-22 13:04 static/image/common/back.gif
做笔记到是有。就是计算 容易忘记。

那就多练练咯~~~计算这个东西只能练别的方法都不怎么靠谱~~~

简爱 发表于 2013-7-22 13:08:42

牡丹花下死做鬼 发表于 2013-7-22 12:12 static/image/common/back.gif
物理地址 =段地址 * 16 + 偏移地址 这个OK? 不OK看小甲鱼视屏 这是知识点
应为 地址是十六进制 所以* ...

刚刚利用这个知识做题 遇到一个问题 感觉思路对 答案只对一个
题目:有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。

做法SA*16+EA=20000H求SA最大,就是EA最小时为0,所以SA=2000H 这个答案对了

求SA最小,就是EA时为FFFF。所以SA=(20000H-FFFF)/16
                                                         =10001/16=BA2请问是最后一布除以16运算错了吗?还是怎么的。

简爱 发表于 2013-7-22 13:15:01

Crazy迷恋. 发表于 2013-7-22 13:08 static/image/common/back.gif
那就多练练咯~~~计算这个东西只能练别的方法都不怎么靠谱~~~

刚刚利用这个知识做题 遇到一个问题 感觉思路对 答案只对一个
题目:有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。

做法SA*16+EA=20000H求SA最大,就是EA最小时为0,所以SA=2000H 这个答案对了

求SA最小,就是EA时为FFFF。所以SA=(20000H-FFFF)/16
                                                          =10001/16=BA2请问是最后一布除以16运算错了吗?还是怎么的。

最后的10001h/16 为什么计算机是BA2是进制哪里错了?

Crazy迷恋. 发表于 2013-7-22 13:32:14

简爱 发表于 2013-7-22 13:15 static/image/common/back.gif
刚刚利用这个知识做题 遇到一个问题 感觉思路对 答案只对一个
题目:有一数据存放在内存20000H单元中, ...

物理地址=SA*16+EA   

那么我们要计算的是段地址AS,因此通过数学上的一些法则可以写成(物理地址 + EA)/16=SA
EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值   
这里你有疑问 可以计算 20000H的物理地址/16就是2000H了是吧~~~ ffff/16那就是fffH3个f还有一个f按位计算被省略了因此2000H-FFFH=1001

EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值

同理2000H-0=2000    进制去看看鱼大的进制转换的视频会有所帮助

简爱 发表于 2013-7-22 15:34:25

Crazy迷恋. 发表于 2013-7-22 13:32 static/image/common/back.gif
物理地址=SA*16+EA   

那么我们要计算的是段地址AS,因此通过数学上的一些法则可以写成(物理地址 ...

只是那里没有除法

SA=(物理地址-SE)/16=(20000H-FFFF)/16 =10001/16=BA2   除以16 计算机是BA2 却不是省掉一位额、请问哪里错了。
页: [1] 2
查看完整版本: 关于寻址范围