|
主题 : : 内存地址空间地址段 0 ——7FFFH = 32KB 是怎样算出来的?思考了两天,困惑,向老师、同学请教了。 [待解决] |
回复[ 87次 ]
点击[ 4429次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-08-17 10:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-21 21:41 |
因为十六进制的两位数字是一个字节,7FFFH 应该是4个字节,怎么会是32KB? 另外的问题是7FFF 这几个十六进制数字相互是什么关系,7FFF用计算器算出的十进制是 32767,是不是类似于 7*F*F*F,或7+F+F+F?
谢谢 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-08-17 19:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-17 19:30 |
我也是初学,大家共同进步撒,说的不好请指出。
你好像概念错误了,7fffH这个数是十六进制,但0000H-7fffh地址的范围是32KB。7FFFh代表的是地址,不是十六进制数,从0000H——7FFFH共有32768个字节单元,1KB=1024BYTE,这样得出32KB。也可以说32KB是地址空间。然后在这个地址空间中按 0000H——7FFFH的索引存入十六进制数据。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-08-18 18:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:152
信誉值:3
注册日期:2008-01-24 21:26 |
楼上说的很对。
0到7FFFH一共有7FFFH+1=8000H个单元,8000H=8*(16^3)=2^3*2^12=2^15=2^10*2^5=1024*32=32K,由于内存单元的最小存储单位是B(字节),所以,0到7FFFH就是有32KB。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-08-18 19:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:152
信誉值:3
注册日期:2008-01-24 21:26 |
楼上说的很对。
0到7FFFH一共有7FFFH+1=8000H个单元,8000H=8*(16^3)=2^3*2^12=2^15=2^10*2^5=1024*32=32K,由于内存单元的最小存储单位是B(字节),所以,0到7FFFH就是有32KB。
=======================
16进制数据的算法和二进制的规则一样,将各个位置上的数据X*16^n(n是数据X所在的位置,位置从0开始)。比如,7FFFH = 7*16^3+F*16^2+F*16^1+F*16^0.
x^n 表示x的n次方。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-08-19 11:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-21 21:41 |
明白了,谢谢楼上同学,咱这个汇编网比学校学习条件好。 | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-08-20 17:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:56
信誉值:14
注册日期:2008-08-20 11:21 |
|
|
|
|
|
[第6楼]
[ 回复时间:2008-10-31 15:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-10-17 09:51 |
|
|
|
|
|
[第7楼]
[ 回复时间:2008-11-03 12:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-10-29 17:31 |
|
|
|
|
|
[第8楼]
[ 回复时间:2008-11-04 21:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-04 11:45 |
请问帖主说的:7FFFH 应该是4个字节,错了,是2个字节. | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-11-04 22:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-01 01:11 |
|
|
|
|
|
[第10楼]
[ 回复时间:2008-11-11 09:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-11 09:04 |
|
|
|
|
|
[第11楼]
[ 回复时间:2008-11-14 14:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2008-11-14 13:55 |
0占1位,7FFF换算成十进制是32767 (个字节单元) 即32767位,1KB=1024BYTE ,所以0000-7FFF 就有 (32767+1)/1024=32K | | |
|
|
|
|
[第12楼]
[ 回复时间:2008-11-18 08:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-16 22:43 |
我的理解是把8000H,直接转成二进制的形式,一位转四位,是2^32,然后求出是32KB。 | | |
|
|
|
|
[第13楼]
[ 回复时间:2008-11-18 08:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-16 22:43 |
|
|
|
|
|
[第14楼]
[ 回复时间:2008-11-26 16:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:11
信誉值:1
注册日期:2008-11-24 20:35 |
我觉得,不明白的地方进来看看大家的分析就会明白了,真的挺好 | | |
|
|
|
|
[第15楼]
[ 回复时间:2008-11-26 23:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-20 00:36 |
|
|
|
|
|
[第16楼]
[ 回复时间:2008-11-28 10:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-13 09:19 |
我的理解是统计,四位 前三位是fff,而每一位都有16中可能,即16*16*16*8 | | |
|
|
|
|
[第17楼]
[ 回复时间:2008-12-07 20:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-05 22:02 |
我感觉这样算更好点,0-7fffh,因为每一个16进制的位都对应着4个二进制的位,所以7,f,f,f各对应着4个2进制的位,而对于f,有2^4种组合方式(0-15,即可用2^4种4位的0-1组合表示),7有2^3(0-7,即可用2^3种4位的0-1组合表示)种组合方式。2^4*2^4*2^4*2^3=2^10*2^5Byte=32kb. | | |
|
|
|
|
[第18楼]
[ 回复时间:2008-12-13 21:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-11 14:20 |
|
|
|
|
|
[第19楼]
[ 回复时间:2008-12-14 10:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-06 10:40 |
我觉得应该把”内存地址空间地址段 0 ——7FFFH “此处的”0“理解为 0地址单元,是这段地址空间的起始地址;7FFFH是这段地址空间的末尾地址。那么 这段地址空间就应该是(7FFFH+0001H)B=8000HB=8*16^3B=2^3*(2^4)^3B=2^15B=2^5*2^10B=32KB
内存地址空间是从0000H地址单元开始计数,而不是生活中的0001H开始,也是我们易混淆的 | | |
|
|
|
|
[第20楼]
[ 回复时间:2008-12-15 05:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-07-26 01:28 |
|
|
|
|
|
[第21楼]
[ 回复时间:2008-12-15 18:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-15 16:40 |
|
|
|
|
|
[第22楼]
[ 回复时间:2008-12-15 22:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-10 22:02 |
|
|
|
|
|
[第23楼]
[ 回复时间:2008-12-17 10:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-13 12:21 |
|
|
|
|
|
[第24楼]
[ 回复时间:2008-12-17 16:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-12 12:10 |
|
|
|
|
|
[第25楼]
[ 回复时间:2008-12-19 12:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:7
信誉值:0
注册日期:2008-12-19 12:14 |
7FFFH = 7*16^3 + 15*16^2 + 15*16^1 +15*16^0
= 28672 + 3840 + 240 + 15
=32767
0~32767 共 32768 个地址;
1KB = 1024B;
32768B = 32KB; | | |
|
|
|
|
[第26楼]
[ 回复时间:2008-12-19 15:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2008-12-15 16:17 |
|
|
|
|
|
[第27楼]
[ 回复时间:2008-12-24 11:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-17 23:32 |
|
|
|
|
|
[第28楼]
[ 回复时间:2008-12-25 15:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-25 14:31 |
|
|
|
|
|
[第29楼]
[ 回复时间:2008-12-29 15:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-12-25 10:32 |
|
|
|
|
|
[第30楼]
[ 回复时间:2009-01-01 18:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-01 18:04 |
|
|
|
|
|
[第31楼]
[ 回复时间:2009-01-11 17:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12 |
0000H——7FFFH共有32768个字节单元,这个是在怎
么算出来的 | | |
|
|
|
|
[第32楼]
[ 回复时间:2009-01-11 17:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12 |
|
|
|
|
|
[第33楼]
[ 回复时间:2009-01-11 17:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12 |
为什么要转化十进制,内存里的地址都是用十进制来表示的吗... | | |
|
|
|
|
[第34楼]
[ 回复时间:2009-01-11 22:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-05 21:52 |
二进制比较好理解,和楼上有位同学一样,1转4最容易算 | | |
|
|
|
|
[第35楼]
[ 回复时间:2009-01-19 16:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:4
注册日期:2009-01-15 22:41 |
0~7FFFH 总共有8000H个存储单元,8086里面一个存储单元是1B,所以总共是8000H * 1 B = 8 * 16^3 *1B = 2^3 * 2^12 B = 2^5 * 2^10 B = 2^5 KB = 32 KB | | |
|
|
|
|
[第36楼]
[ 回复时间:2009-01-31 10:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-31 10:07 |
好,大家从不同的方面解释这个问题,更易于理解,还能巩固基础知识,好好 | | |
|
|
|
|
[第37楼]
[ 回复时间:2009-02-02 13:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-02 12:34 |
虽然我对32KB的还没怎么理解
但是7FFF绝对不是7+F+F+F或者7*F*F*F
7FFF转换为10进制=7*16的3次方+15*16的2次方+15*16的1次方+15*16的0次方
16进制的F=10进制的15
是这样算的=v= | | |
|
|
|
|
[第38楼]
[ 回复时间:2009-02-13 13:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2008-11-29 19:08 |
15*16哪来的,看的晕晕的,不过前面那个我看明白了,我算的时候把0给忽略了,看来还是没学到为 | | |
|
|
|
|
[第39楼]
[ 回复时间:2009-02-16 15:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
7FFF转换为10进制=7*16的3次方+15*16的2次方+15*16的1次方+15*16的0次方
---------------------
楼上这位兄弟问的是这里面提到的15*16吗?如果是看看下面的例子就明白了。
先拿十进制举个例子:
123 = 3*10的0次方+2*10的1次方+1*10的2次方
= 3*1 + 2*10 +1*100
= 123
十六进制123H
123H = 3*16的0次方+2*16的1次方+1*16的2次方
= 3*1 + 2*16 +1*256
= 291
H/h 标识此数是十六进制
D/d 标识此数是十进制(因为平时都用十进制,所以不说明是其他进制的情况下都是十进制,所以这个d通常都省略,不区分大小写)
B/b 标识此数是二进制,转换成十进制通上面两个例子。 | | |
|
|
|
|
[第40楼]
[ 回复时间:2009-02-22 00:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-20 19:29 |
|
|
|
|
|
[第41楼]
[ 回复时间:2009-02-22 09:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-21 16:34 |
看看了给位师兄的解释明白了 有意思 学习的信心增长了16^n倍 | | |
|
|
|
|
[第42楼]
[ 回复时间:2009-02-24 23:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-21 16:35 |
|
|
|
|
|
[第43楼]
[ 回复时间:2009-02-28 20:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-28 18:16 |
|
|
|
|
|
[第44楼]
[ 回复时间:2009-03-02 16:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-10 11:50 |
|
|
|
|
|
[第45楼]
[ 回复时间:2009-03-02 23:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-29 07:59 |
你不要老记得自己是初中生就好 学历并不代表什么的 我现在是大专生 学的软件开发 但我们所开的课程全都是为了找工作所开的 好比我们住客是Asp.net 所学的c#都又快淘汰了 所以 就只能自己走一条路 从低沉做起
感觉开始 很难很难 习惯了就好了 毕竟人本身对陌生的东西是比较恐惧的 熟悉了就好哦
经过半学期的时间更坚定了自己以后如何走这条路,也因为我的特地独行‘
也挂了不少课 简单的道理 专科本身就是面向技能的学习 但我能走出更好的路何乐而不为
大不了我可以不要这咩用的本本
时间总过的很快 感觉自己在独自航行 虽说有自己的航行的目标和坐标 但和希望认识多的朋友共同交流 共同进步
现在简要说下学习方案
从c 入门 再进入汇编程序设计其中所买教材是=====『IBM-PC汇编 80*86汇编 Intel汇编语言程序设计 王爽汇编语言』
学习完汇编的I/0指令 和DEBUG 调试
在了解汇编原理
过后再学C++ 为此区分过程语言 和面向对象语言有啥区别 之后就是数据节后 把眼睛开怀吧 其中的堆栈 。树
图 等
基于此处
以后要面向WINDOWS 的话就开始API 拿下vb vc++ 等MFC 窗口化的开发工具
在这我说去年 学校教过的课程 数据结构 WINDOWS FORM C C# 这学期要开 ASP xml ...
有共同爱好的———— (assembly language) 加我QQ :282724439
本人高中 十分堕落因此通玩了 热血 魔兽镇巴 WOW 天龙 风火 。。。。(爬围墙被同传N此差点挂了 呵呵)
但现在很少有时间去和朋友们去刷挂了 ,
没事的时候大一谈了场恋爱 为此而后特注意自我形象 (在女生中的 )
为此看有同学在为此硬背五线卜
呵呵就说这么多了 。。。 哦顺便带一句 Pub07(网吧系统)已经升级更新 不是很专业的 最好自己先做好局域网内部测试 。。不要被抓了 呵呵 | | |
|
|
|
|
[第46楼]
[ 回复时间:2009-03-18 23:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2009-03-12 22:22 |
二进制数字不是越到后面2的幂次越大吗,十六进制相反吗? | | |
|
|
|
|
[第47楼]
[ 回复时间:2009-03-27 21:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-03-27 20:52 |
从0到ffff是16的4次方,也就是2的16次方,是64k
0到7fff是0到ffff的个数的一般,所以是64k的一般,就是32k啦。。。。 | | |
|
|
|
|
[第48楼]
[ 回复时间:2009-03-29 00:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-03-28 23:51 |
|
|
|
|
|
[第49楼]
[ 回复时间:2009-04-28 16:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-19 14:13 |
|
|
|
|
|
[第50楼]
[ 回复时间:2009-04-28 23:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-08 13:19 |
|
|
|
|
|
[第51楼]
[ 回复时间:2009-05-07 15:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2009-04-07 09:03 |
|
|
|
|
|
[第52楼]
[ 回复时间:2009-05-10 09:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-10 09:42 |
|
|
|
|
|
[第53楼]
[ 回复时间:2009-05-11 16:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05 |
他表示的是数字啦 0x7fff=32767B 32767/1024= 32KB 1表示一个内存单元 =1byte 一个字节(8位二进制数)
表示范围的东西 一般都是说个数的 而内存最小单元就是 Byte了 | | |
|
|
|
|
[第54楼]
[ 回复时间:2009-05-13 22:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2009-05-13 21:48 |
你可以把地址的每一位当成一根地址线,现在有15根线是不确定的,每根线或0或1,可以寻找的地址空间便是2^15个存储单元 而2^10=1k,2^5=32 每个存储单元是8位的,所以那个结论就的出来了。 | | |
|
|
|
|
[第55楼]
[ 回复时间:2009-05-22 05:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2008-10-12 14:20 |
大家说的太复杂了,这不过就是十六进制转为十进制的问题,用windows自带的计算器转到科学型,选十六进制先计算7fff+1=8000,再把这个十六进制的8000转为十进制得32768,因要用K做单位,所以要再除以1024,结果就是32K | | |
|
|
|
|
[第56楼]
[ 回复时间:2009-05-22 15:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-22 15:27 |
大家好啊,我是新人,以后请大家多多指教,请问大家学汇编一般是怎样的进度才酸正常?要学多久才算学得好,我刚学到第五章,感觉越来越难 了! | | |
|
|
|
|
[第57楼]
[ 回复时间:2009-05-22 15:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
汇编网首页的学习活动里面有个计划书,上面提到每章两章是没问题的。 | | |
|
|
|
|
[第58楼]
[ 回复时间:2009-06-01 22:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-05-31 01:05 |
我也是初学,大家共同进步撒,说的不好请指出。
你好像概念错误了,7fffH这个数是十六进制,但0000H-7fffh地址的范围是32KB。7FFFh代表的是地址,不是十六进制数,从0000H——7FFFH共有32768个字节单元,1KB=1024BYTE,这样得出32KB。也可以说32KB是地址空间。然后在这个地址空间中按 0000H——7FFFH的索引存入十六进制数据。
------------------
回复:
0000H-7FFFH 不是总共就15位,应该是32768bit吧?怎么是字节? | | |
|
|
|
|
[第59楼]
[ 回复时间:2009-06-01 22:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-05-31 01:05 |
|
|
|
|
|
[第60楼]
[ 回复时间:2009-06-01 22:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-05-31 01:05 |
不好意思,把内存的最小单元理解成bit了,0000H-7FFFH 就是32768个字节单元!(2^15*2^3)=(2^5*2^10)*2^3= 32个K 字节... | | |
|
|
|
|
[第61楼]
[ 回复时间:2009-06-12 11:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2009-06-08 19:25 |
先是晕了,再看明白了,再看又糊涂了,特别是47楼老兄的见解`
``
真是糊涂了````````那样算也可以吗` | | |
|
|
|
|
[第62楼]
[ 回复时间:2009-06-15 13:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-07 00:36 |
|
|
|
|
|
[第63楼]
[ 回复时间:2009-06-15 15:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-14 00:35 |
我真郁闷 你们懂进制吗 7FFFH的意思就是用16进制的一个数 7FFF 其实H代表16进制的意思
所以7FFFH=7*16的三次方+15*16的二次方+15*16+15=32767
到这就说明地址空间为32768
32768/1024=32字节!!! | | |
|
|
|
|
[第64楼]
[ 回复时间:2009-06-16 08:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20 |
内存地址空间地址段 0 ——7FFFH = 32KB ~
说一下我的思路:每一个内存地址对应一个存储单元,即对应一个字节(1Byte); 0 ——7FFFH转换为二进制即为0000 0000 0000 0000——0111 1111 1111 1111,总共包括1000 0000 0000 0000个存储单元,即为2^15个存储单元,即为32K个字节,即为32KB. | | |
|
|
|
|
[第65楼]
[ 回复时间:2009-06-16 15:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-02 15:26 |
说的简单点:这里的32KB是0-7fffH,这段空间的容量,怎么算出来的呢,7FFFH(结束地址)-0(开始地址)+1(因为内存单元是从,0开始的,所能要加1)=内存空间空量(请注意,这里算出来的是字节),因为这里的32KB,单位是KB,1KB=1024B(字节)所能把你算出来的数,再除以1024,就是32KB了!不知道你懂没! | | |
|
|
|
|
[第66楼]
[ 回复时间:2009-06-16 18:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-16 17:52 |
真是个好地方
前几天书也买了
要好好 学习拉
------------------
回复:书在啥地方买呢 | | |
|
|
|
|
[第67楼]
[ 回复时间:2009-06-24 00:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-06-24 00:05 |
内存地址空间地址段 0 ——7FFFH = 32KB 是怎样算出来的?
一个内存地址指向一个存储单元,而一个单元占1个字节。
0-7FFFH有32768个存储单元。而1024B=1KB;
就很自然32768/1024=32了 | | |
|
|
|
|
[第68楼]
[ 回复时间:2009-07-01 09:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-30 10:22 |
|
|
|
|
|
[第69楼]
[ 回复时间:2009-07-04 20:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-27 23:55 |
|
|
|
|
|
[第70楼]
[ 回复时间:2009-07-07 10:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-22 20:35 |
因为十六进制的两位数字是一个字节,7FFFH 应该是4个字节,怎么会是32KB? 另外的问题是7FFF 这几个十六进制数字相互是什么关系,7FFF用计算器算出的十进制是 32767,是不是类似于 7*F*F*F,或7+F+F+F?
谢谢
------------------
回复:7FFFH变为二进制表示的是15位,说明有15根地址线,可以寻址的地址空间为2的15次方,即2的15次方Byte,10次方为1KB,所以等于2的5次方KB,即32KB | | |
|
|
|
|
[第71楼]
[ 回复时间:2009-07-09 13:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2009-07-08 17:05 |
以书上的一个例子来说明
地址0~7FFFH的32KB空间为主随机存储器的地址空间;
地址8000H~9FFFH的8KB空间为显存地址空间;
地址A000H~FFFFH的24KB空间为各个ROMa的地址空间;
先说第一个,0是一个编号,即逻辑存储器的起始地址,而7FFFH就是这一段的结束地址,从0开始至7FFFH结束。然后计算7FFFH的编号,以十进制表示为32767,再加上0,一共是32768个编号,即32768个存储单元,每个存储单元可以存储1Bytes,也就是1字节,32768字节换算成KB即32KB。
第二个8000H~9FFFH:8000H换算成十进制为32768,即这一段是从32768为起始地址;9FFFH换算十进制为40959,即这一段的结束地址,然后计算从起始至结束中间有多少个地址单位,40959-32768+1=8192,40959-8191得出的结果并不包括32768,所以要再加上1才是最终结果,这段地址一共包括8192个地址单位,即8192个存储单元,换算为KB即8KB。
第三个A000H~FFFFH:A000H转换十进制为40960,起始地址为40960;FFFH转换十进制为65535,结束地址为65535,然后65535-40960+1=24576,换算为KB即24KB。 | | |
|
|
|
|
[第72楼]
[ 回复时间:2009-09-03 13:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2009-08-15 01:25 |
以书上的一个例子来说明
地址0~7FFFH的32KB空间为主随机存储器的地址空间;
地址8000H~9FFFH的8KB空间为显存地址空间;
地址A000H~FFFFH的24KB空间为各个ROMa的地址空间;
先说第一个,0是一个编号,即逻辑存储器的起始地址,而7FFFH就是这一段的结束地址,从0开始至7FFFH结束。然后计算7FFFH的编号,以十进制表示为32767,再加上0,一共是32768个编号,即32768个存储单元,每个存储单元可以存储1Bytes,也就是1字节,32768字节换算成KB即32KB。
第二个8000H~9FFFH:8000H换算成十进制为32768,即这一段是从32768为起始地址;9FFFH换算十进制为40959,即这一段的结束地址,然后计算从起始至结束中间有多少个地址单位,40959-32768+1=8192,40959-8191得出的结果并不包括32768,所以要再加上1才是最终结果,这段地址一共包括8192个地址单位,即8192个存储单元,换算为KB即8KB。
第三个A000H~FFFFH:A000H转换十进制为40960,起始地址为40960;FFFH转换十进制为65535,结束地址为65535,然后65535-40960+1=24576,换算为KB即24KB。
------------------
回复:我看到这里.我有个问题.我想问一下.8086CPU支持的最大内存是多少,现在只是将1M的内存进行划分,如果将内存为512M或256M内存呢.那该怎么划分.. | | |
|
|
|
|
[第73楼]
[ 回复时间:2011-02-16 20:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-15 16:28 |
7FFF转为十进制为32767 代表有32767+1个地址单元。
1KB=1024b
32768/1024=32KB | | |
|
|
|
|
[第74楼]
[ 回复时间:2011-02-20 16:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-26 18:13 |
7FFFH=0111 1111 1111 1111B
共可表示2^15个地址单元
(2^5)×(2^10)个单元格,即32KB | | |
|
|
|
|
[第75楼]
[ 回复时间:2011-02-22 12:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-22 12:40 |
我也是初学者、、看了大家的讨论真是受益匪浅啊、、谢谢了 | | |
|
|
|
|
[第76楼]
[ 回复时间:2011-03-06 13:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-06 13:37 |
|
|
|
|
|
[第77楼]
[ 回复时间:2011-03-06 17:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-03 19:23 |
|
|
|
|
|
[第78楼]
[ 回复时间:2011-03-24 02:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-20 02:23 |
|
|
|
|
|
[第79楼]
[ 回复时间:2011-03-28 20:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-28 19:57 |
00H~7fffH
每一内存相当于1B 00~7fffH 是2^15 2^5kb
也就是32KB | | |
|
|
|
|
[第80楼]
[ 回复时间:2011-04-01 12:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-12-06 13:11 |
0~7fffh=32k?
首先一个内存最多可以存储一个字节,这个你应该知道,0~7fffH是指从0~7fff这些个内存单元,正如我第一句所说的,一个内存单元最多可以存储一个字节,则0~7fff这些个单元就是7fff+1个字节,用计算器换算一下,
十六进制 十进制
8000(7fff+1) 32768
现在的32768单位是字节(Byte)
又因为1024B=1kb,所以32768B=32768/1024kb=32kb
不知道我说的是否清楚~~ | | |
|
|
|
|
[第81楼]
[ 回复时间:2011-04-21 09:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:1
注册日期:2011-04-18 07:21 |
7FFFH=0111 1111 1111 1111B
你把 16进制转成2进制了
怎么得出2^15个地址单元?
然后(2^5)X(2^10)个单元格?这个又是怎么出来的。。
越看越迷惑,本来看懂了,被你这样一搅和,又晕了。 | | |
|
|
|
|
[第82楼]
[ 回复时间:2011-05-06 15:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-05 14:45 |
初学者。这样解释对不?0 ——7FFFH=32KB的意思是说总共有8000H个Byte(最小存储单元)。每个存储单元都分配一个十六进制的数代表地址,书本上也提到的,就像门牌号一样,从0到7FFFH。而8000H Byte=32*1024 Byte=32KB. | | |
|
|
|
|
[第83楼]
[ 回复时间:2011-05-06 15:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-05 14:45 |
回复:我看到这里.我有个问题.我想问一下.8086CPU支持的最大内存是多少,现在只是将1M的内存进行划分,如果将内存为512M或256M内存呢.那该怎么划分..
------------------
回复:32为地址总线支持最大4GB寻址空间,包括分给其他设备的,我想分给内存的怎么也够2GB 吧 | | |
|
|
|
|
[第84楼]
[ 回复时间:2011-06-01 16:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-30 03:05 |
太棒了 我也为这个问题困惑呢 在这里找到了解答 谢谢 | | |
|
|
|
|
[第85楼]
[ 回复时间:2011-06-09 15:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-05 13:28 |
楼主你看,这个地址段并不是表示这个数据是表示的内存,而0——7fffh中每个数据标志的是一个内存空间,一个内存空
间就是一个字节,这个地址段表示的范围是8*16*16*16=32678个存储空间的,所以表示的就是32kb | | |
|
|
|
|
[第86楼]
[ 回复时间:2011-06-14 13:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-06-14 12:12 |
|
|
|
|
|
[第87楼]
[ 回复时间:2011-07-02 00:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-07-01 23:30 |
我说点大白话。
大白话,大家就大白话的听。
说这个 7FFF 其实就是个编号。
就好比你用十进制去编号一样。
从第一个开始 1,2,3,4,5,6,7,8,9,10,11.....16有16个东西。
现在我不用十进制啦,用十六进制,逢16进一(就像时间一样,逢12进一一样,逢24进一为一天一样。)
以第一个开始 0(电脑是以0为起始点的),1,2,3,4,5,6,7,8,9,a,b.....f
那你说这个东西的总数是多少(也就是它占用的地方有多大,如果用东西的个数来表示)
那你会说16个(用十进制回答)
也可以说f个(用十六制回答)
那再来想想,7fff 用十进制计算有多少个。你想想f(也就是16个)满啦,进一第二位就是1,第一位就又从0开始,
就是10h(h是十六进制的标识,如果没这个标识不就是10了吗,想想用计算器换算为什么是16换算成10h而不是17)
进一,再进一,再进一,进到第二位增加到f.(想想第三位的f,如何出现的。第四位的7如何实现的。)
既然每个f都是后一位增1累加到f的是不是把7fff换算成十进制数,就该这样算呢8*16*16*16=32768(想想为什么是8而不是7,和上面用计算器换算16成10h是一样的)。
这个时候再想想,32768是什么是,是编号呢,还是总个数(即占用的空间,如果我们用个数来表示空间的话,因为每个东西都是固定的大小,就好比,一个字节=8个bit一样)
回到上面,32768是地址呢,还是空间大小,7fffh是地址呢还是空间大小 | | |