. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  内存地址空间地址段 0 ——7FFFH = 32KB 是怎样算出来的?思考了两天,困惑,向老师、同学请教了。  [待解决] 回复[ 87次 ]   点击[ 4429次 ]  
yky
[帖 主]   [ 发表时间: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?
                                                                                谢谢
flyyesky
[第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的索引存入十六进制数据。
crazyman
[第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。
crazyman
[第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次方。
yky
[第4楼]   [ 回复时间:2008-08-19 11:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-21 21:41
明白了,谢谢楼上同学,咱这个汇编网比学校学习条件好。
musicvs
[第5楼]   [ 回复时间:2008-08-20 17:42 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:14
注册日期:2008-08-20 11:21
学习了~
onlykey
[第6楼]   [ 回复时间:2008-10-31 15:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-10-17 09:51
我也正迷糊着呢 
  学习了~~!
waigua
[第7楼]   [ 回复时间:2008-11-03 12:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-10-29 17:31
谢谢
419031061
[第8楼]   [ 回复时间:2008-11-04 21:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-04 11:45
请问帖主说的:7FFFH 应该是4个字节,错了,是2个字节.
osys.cn
[第9楼]   [ 回复时间:2008-11-04 22:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-01 01:11
支持!!可以结贴了.
bill8379
[第10楼]   [ 回复时间:2008-11-11 09:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-11 09:04
xiexie
crbboy
[第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
zhaozhao
[第12楼]   [ 回复时间:2008-11-18 08:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-16 22:43
我的理解是把8000H,直接转成二进制的形式,一位转四位,是2^32,然后求出是32KB。
zhaozhao
[第13楼]   [ 回复时间:2008-11-18 08:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-16 22:43
不好意思,打错了,我纠正一下,是2^15。
378499835
[第14楼]   [ 回复时间:2008-11-26 16:14 ]   [引用]   [回复]   [ top ] 
荣誉值:11
信誉值:1
注册日期:2008-11-24 20:35
我觉得,不明白的地方进来看看大家的分析就会明白了,真的挺好
nmwwf
[第15楼]   [ 回复时间:2008-11-26 23:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-20 00:36
学习了,新人刚开始学汇编
maodengqi
[第16楼]   [ 回复时间:2008-11-28 10:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-13 09:19
我的理解是统计,四位 前三位是fff,而每一位都有16中可能,即16*16*16*8
chuhaidematou
[第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.
yekez
[第18楼]   [ 回复时间:2008-12-13 21:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-11 14:20
喜欢这样的环境
lsfdjh
[第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开始,也是我们易混淆的
mxlzf741
[第20楼]   [ 回复时间:2008-12-15 05:44 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-07-26 01:28
真是个好地方
   前几天书也买了
  要好好 学习拉
ssssa
[第21楼]   [ 回复时间:2008-12-15 18:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-15 16:40
很明白了,谢谢
laoshu0824
[第22楼]   [ 回复时间:2008-12-15 22:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-10 22:02
学习了,,,
liushuimin
[第23楼]   [ 回复时间:2008-12-17 10:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-13 12:21
学习了,,,
tianyu_lianxin
[第24楼]   [ 回复时间:2008-12-17 16:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-12 12:10
学习了。
zhaolu
[第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;
hanlsheng
[第26楼]   [ 回复时间:2008-12-19 15:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-12-15 16:17
学习了
jipinshangren
[第27楼]   [ 回复时间:2008-12-24 11:37 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-08-17 23:32
学习了!谢谢!
xhzzz
[第28楼]   [ 回复时间:2008-12-25 15:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-25 14:31
一个学习的好地方。。
yzw12
[第29楼]   [ 回复时间:2008-12-29 15:40 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-12-25 10:32
学习了,这个也是一直不知道怎么算呢
pawangzhizhu
[第30楼]   [ 回复时间:2009-01-01 18:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-01 18:04
正在学习中!
a6965921b
[第31楼]   [ 回复时间:2009-01-11 17:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12
0000H——7FFFH共有32768个字节单元,这个是在怎
么算出来的
a6965921b
[第32楼]   [ 回复时间:2009-01-11 17:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12
7*15*15*15=23625,对吗
a6965921b
[第33楼]   [ 回复时间:2009-01-11 17:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-27 10:12
为什么要转化十进制,内存里的地址都是用十进制来表示的吗...
maple
[第34楼]   [ 回复时间:2009-01-11 22:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-05 21:52
二进制比较好理解,和楼上有位同学一样,1转4最容易算
maxm
[第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
lvc789
[第36楼]   [ 回复时间:2009-01-31 10:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-01-31 10:07
好,大家从不同的方面解释这个问题,更易于理解,还能巩固基础知识,好好
queen
[第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=
ndxhoubin
[第38楼]   [ 回复时间:2009-02-13 13:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-11-29 19:08
15*16哪来的,看的晕晕的,不过前面那个我看明白了,我算的时候把0给忽略了,看来还是没学到为
abob
[第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 标识此数是二进制,转换成十进制通上面两个例子。
zhangzl419
[第40楼]   [ 回复时间:2009-02-22 00:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-02-20 19:29
Crazyman说的很对,是个懂的。
wzpww
[第41楼]   [ 回复时间:2009-02-22 09:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-02-21 16:34
看看了给位师兄的解释明白了 有意思 学习的信心增长了16^n倍
fangshucn
[第42楼]   [ 回复时间:2009-02-24 23:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-02-21 16:35
学习中
975536400
[第43楼]   [ 回复时间:2009-02-28 20:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-02-28 18:16
有15根地址线
cedric7006
[第44楼]   [ 回复时间:2009-03-02 16:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-10 11:50
呵呵2^15=32768,可以寻址32KB
hujiao201
[第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(网吧系统)已经升级更新 不是很专业的 最好自己先做好局域网内部测试 。。不要被抓了 呵呵
lcgbest
[第46楼]   [ 回复时间:2009-03-18 23:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-03-12 22:22
二进制数字不是越到后面2的幂次越大吗,十六进制相反吗?
82356722
[第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啦。。。。
nebulae
[第48楼]   [ 回复时间:2009-03-29 00:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-28 23:51
呵呵,又学习到了
zzhhoouu
[第49楼]   [ 回复时间:2009-04-28 16:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-19 14:13
47楼的 很有见解  我佩服
wzcfxu
[第50楼]   [ 回复时间:2009-04-28 23:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-08 13:19
我也是47楼的想法
xiaomeng008
[第51楼]   [ 回复时间:2009-05-07 15:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-04-07 09:03
大家加油……
tangtao
[第52楼]   [ 回复时间:2009-05-10 09:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-10 09:42
学到了,谢谢各位。
zhenglxd
[第53楼]   [ 回复时间:2009-05-11 16:59 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:0
注册日期:2009-04-09 10:05
他表示的是数字啦 0x7fff=32767B  32767/1024= 32KB 1表示一个内存单元 =1byte 一个字节(8位二进制数)

表示范围的东西 一般都是说个数的 而内存最小单元就是 Byte了
simon8410
[第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位的,所以那个结论就的出来了。
lwbliang
[第55楼]   [ 回复时间:2009-05-22 05:15 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-10-12 14:20
大家说的太复杂了,这不过就是十六进制转为十进制的问题,用windows自带的计算器转到科学型,选十六进制先计算7fff+1=8000,再把这个十六进制的8000转为十进制得32768,因要用K做单位,所以要再除以1024,结果就是32K
luckyhelin
[第56楼]   [ 回复时间:2009-05-22 15:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-22 15:27
大家好啊,我是新人,以后请大家多多指教,请问大家学汇编一般是怎样的进度才酸正常?要学多久才算学得好,我刚学到第五章,感觉越来越难 了!
mess
[第57楼]   [ 回复时间:2009-05-22 15:45 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
汇编网首页的学习活动里面有个计划书,上面提到每章两章是没问题的。
lostyue
[第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吧?怎么是字节?
lostyue
[第59楼]   [ 回复时间:2009-06-01 22:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-05-31 01:05
郁闷大了...谁在的帮个忙~~
lostyue
[第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 字节...
lxran
[第61楼]   [ 回复时间:2009-06-12 11:14 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2009-06-08 19:25
先是晕了,再看明白了,再看又糊涂了,特别是47楼老兄的见解`
``
真是糊涂了````````那样算也可以吗`
zlt1013
[第62楼]   [ 回复时间:2009-06-15 13:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-07 00:36
终于搞明白了
sunhairuiqn
[第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字节!!!
tsembrace
[第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.
573085020
[第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了!不知道你懂没!
ljfzl
[第66楼]   [ 回复时间:2009-06-16 18:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-16 17:52
真是个好地方
   前几天书也买了
  要好好 学习拉
------------------
回复:书在啥地方买呢
foopo
[第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了
fnjerry
[第68楼]   [ 回复时间:2009-07-01 09:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-30 10:22
学习了。。这个网站真不错
hitop0609
[第69楼]   [ 回复时间:2009-07-04 20:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-27 23:55
大家一起交流不错,天天向上!
billli
[第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
chen2116
[第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。
xp55699312
[第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内存呢.那该怎么划分..
binbr
[第73楼]   [ 回复时间:2011-02-16 20:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-15 16:28
7FFF转为十进制为32767   代表有32767+1个地址单元。
1KB=1024b  
32768/1024=32KB
waybq
[第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
lypspy
[第75楼]   [ 回复时间:2011-02-22 12:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-22 12:40
我也是初学者、、看了大家的讨论真是受益匪浅啊、、谢谢了
561367957
[第76楼]   [ 回复时间:2011-03-06 13:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-06 13:37
初学者 大家一起努力啊O(∩_∩)O~
1016424295
[第77楼]   [ 回复时间:2011-03-06 17:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-03 19:23
哥也是初学者,哥也来取点经└(^o^)┘
leosacer
[第78楼]   [ 回复时间:2011-03-24 02:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-20 02:23
需要注意地址单元计数,起始是0000H.
enddeadroyal
[第79楼]   [ 回复时间:2011-03-28 20:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-28 19:57
00H~7fffH
每一内存相当于1B 00~7fffH 是2^15 2^5kb
也就是32KB
lianrenjujishou
[第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
不知道我说的是否清楚~~
kim
[第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)个单元格?这个又是怎么出来的。。
越看越迷惑,本来看懂了,被你这样一搅和,又晕了。
chriskay
[第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.
chriskay
[第83楼]   [ 回复时间:2011-05-06 15:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-05 14:45
回复:我看到这里.我有个问题.我想问一下.8086CPU支持的最大内存是多少,现在只是将1M的内存进行划分,如果将内存为512M或256M内存呢.那该怎么划分..
------------------
回复:32为地址总线支持最大4GB寻址空间,包括分给其他设备的,我想分给内存的怎么也够2GB  吧
14650413
[第84楼]   [ 回复时间:2011-06-01 16:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-30 03:05
太棒了 我也为这个问题困惑呢 在这里找到了解答 谢谢
a513247209
[第85楼]   [ 回复时间:2011-06-09 15:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-05 13:28
楼主你看,这个地址段并不是表示这个数据是表示的内存,而0——7fffh中每个数据标志的是一个内存空间,一个内存空

间就是一个字节,这个地址段表示的范围是8*16*16*16=32678个存储空间的,所以表示的就是32kb
wdnndcry32
[第86楼]   [ 回复时间:2011-06-14 13:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-14 12:12
完全看不懂
我是刚接触,不懂什么十进制和十六进制
zyek
[第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是地址呢还是空间大小
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved