|
主题 : : 段的起始地址要为16的倍数,我可不可以这样理解 [待解决] |
回复[ 69次 ]
点击[ 6833次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-08-22 15:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:3
注册日期:2007-08-21 01:10 |
比如说1000x16 意思是在10000 在1000的后面加个零了 | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-08-22 17:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42 |
表面上是这样的!其实你的这种理解写成 1000H X 10H,这样的表示才对,也更符合你的这个思维逻辑。但是1000 x 16 好像就不太好了,左右进制不统一。
其实,就像2进制左移一位与X2等价一样,16进制的x10h(即16)其实也可以看成16进制的左移一位,不过,此处所说的一位相当于2进制中的4位了。
我觉得关键是理解,表面的形式只是个给人的直观感觉。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-08-22 21:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:3
注册日期:2007-08-21 01:10 |
|
|
|
|
|
[第3楼]
[ 回复时间:2007-08-22 21:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:3
注册日期:2007-08-21 01:10 |
cxn
基础知识 你可以找几个例子试试 比如 101B 中每一位和各位的左边位的位权有什么关系?在二进制中该位的左边一位的位权都是该位的2倍 位权的值是这样的该位为1其它位为0时该数的值。
比如100101B各位的位权从左到右为2^5=32,2^4=16,2^3=8,2^2=4,2^1=2,2^0=1
又比如3DF8H各位的位权从左到右为16^3=4096,16^2=256,16^1=16,16^0=1
建议重新学习下进制的转换
jiyunyan
其实这很简单!
生活中是以10进位的!例如!150 你左移一位就是1500!相当于 150*10
机器数是以2进位的!左移当然*2咯
看了他们两个人的帖子我就明白了 谢谢 呵呵 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-10-20 23:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:1
注册日期:2007-10-19 21:34 |
各位朋友,真热心,这个问题我直到今天才明白1000*16是怎么算出结果来的,原来是进制不同,谢谢! | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-10-30 11:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-30 10:46 |
你想啊~10进制的数乘10
比如123x10 不就是1230么
那么你说的1000Hx16 也就是这个1000H是个16进制数,再成一个16就是在后面加了个0,在机器里所有的数据都是2进制存放的,那么就相当于2进制数左移了两位 | | |
|
|
|
|
[第6楼]
[ 回复时间:2007-10-31 16:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24 |
段地址为16的倍数实际上就是说段地址的末尾必须是0。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2007-11-10 23:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-29 22:20 |
|
|
|
|
|
[第8楼]
[ 回复时间:2007-11-20 22:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:5
注册日期:2007-11-03 11:40 |
10(一零)在十六进制中相当于十进制的16,所以段地址是十六的倍数,即xxx0.
这个网站氛围很好 | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-01-10 12:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-01-10 12:11 |
段的起始地址要为16的倍数,我可不可以这样理解
------
看楼主的理解没什么问题,但这个说法肯定是错的。
根据公式:物理地址=段地址*10h+偏移地址
这里的段地址可以为0~ffffh的任意值。 | | |
|
|
|
|
[第10楼]
[ 回复时间:2008-02-10 17:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55 |
嗯,
要分清楚段地址与段的起始地址或基础地址的区别。 | | |
|
|
|
|
[第11楼]
[ 回复时间:2008-02-11 20:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-02-11 20:20 |
|
|
|
|
|
[第12楼]
[ 回复时间:2008-02-25 02:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-02-24 19:41 |
就是这样嘛。小学学10进制。。乘10就是加个0这是16进制当然是乘以16就加个0喽!!! | | |
|
|
|
|
[第13楼]
[ 回复时间:2008-04-15 10:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-13 13:14 |
当初我也迷茫了好长时间,搞不懂,就记着移一位就加个0,怎么说的是二进制左移就相当与*2,怎么10进制做移相当乘10,16进制相当于*16。
我算啊算的,比如2000H,左移一位,按照定义,应该*16,我乘啊乘的,怎么也不对。 后来一想,我靠,人家是16进制,你把16进制非要去乘10进制的16,能对吗? 应该把16转换成16进制就是10H拉。这样在乘就没错了。郁闷。 | | |
|
|
|
|
[第14楼]
[ 回复时间:2008-04-16 03:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:44
信誉值:0
注册日期:2008-04-11 13:33 |
|
|
|
|
|
[第15楼]
[ 回复时间:2008-04-19 18:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-16 15:28 |
|
|
|
|
|
[第16楼]
[ 回复时间:2008-07-27 12:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:3
注册日期:2008-07-14 19:30 |
十进制的16不就是16进制的10嘛
所以一个十六进制是16(注意:该16是10进制)倍数,其实就10H的倍数,,
个人见解!!! | | |
|
|
|
|
[第17楼]
[ 回复时间:2008-07-28 11:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-25 10:35 |
小弟 建立了汇编语言交流群,希望大家有什么问题可以在线交流.不知道这算不算违反了论坛的规定,如果是 就请删除吧,想一起交流的加:67024984 | | |
|
|
|
|
[第18楼]
[ 回复时间:2008-08-11 16:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-29 18:00 |
回复:[贴 主]
------------------
受教了!!! | | |
|
|
|
|
[第19楼]
[ 回复时间:2008-08-11 16:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-29 18:00 |
|
|
|
|
|
[第20楼]
[ 回复时间:2008-08-21 18:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2007-08-20 03:11 |
二进制*2
八进制*8
十进制*10
十六进制*16
道理都是一样的,就是左移一位,后面补零 | | |
|
|
|
|
[第21楼]
[ 回复时间:2008-08-27 06:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-20 17:22 |
|
|
|
|
|
[第22楼]
[ 回复时间:2008-09-02 17:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-18 10:34 |
|
|
|
|
|
[第23楼]
[ 回复时间:2008-09-09 16:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:8
信誉值:2
注册日期:2008-09-04 17:29 |
二进制*2
八进制*8
十进制*10
十六进制*16
道理都是一样的,就是左移一位,后面补零
------------------
回复:错,全*16.
20-16=4;20根总线
2^4=16;2的4次方。 | | |
|
|
|
|
[第24楼]
[ 回复时间:2008-09-10 16:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:1
注册日期:2008-09-04 16:35 |
|
|
|
|
|
[第25楼]
[ 回复时间:2008-09-12 15:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-12 15:07 |
|
|
|
|
|
[第26楼]
[ 回复时间:2008-09-16 16:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-16 16:23 |
哈哈~~~
原来如此,*16就是向左移一位啊!!! | | |
|
|
|
|
[第27楼]
[ 回复时间:2008-10-04 05:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-03-30 04:18 |
|
|
|
|
|
[第28楼]
[ 回复时间:2008-11-22 20:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-16 22:43 |
|
|
|
|
|
[第29楼]
[ 回复时间:2008-12-07 23:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-22 13:39 |
|
|
|
|
|
[第30楼]
[ 回复时间:2008-12-29 23:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-22 14:47 |
左移多少位要看进制的
说段地址左移1位的是16进制表示的
说段地址左移16位的是16进制表示的 | | |
|
|
|
|
[第31楼]
[ 回复时间:2008-12-29 23:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-22 14:47 |
上面打错了,更正一下:
说段地址左移1位的是16进制表示的
说段地址左移16位的是2进制表示的 | | |
|
|
|
|
[第32楼]
[ 回复时间:2009-01-01 08:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-21 21:41 |
我的看法是“段地址*16”是以平常的十进制思维来描述的,在具体操作时,段地址是十六进制的,偏移地址也应是十六进制的,如:1005H*10H ,而不应是:1005H*16. | | |
|
|
|
|
[第33楼]
[ 回复时间:2009-02-12 16:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-12 14:29 |
理解就好理解就好,多思考会体会更深,我想这也是王老师之意吧 | | |
|
|
|
|
[第34楼]
[ 回复时间:2009-02-13 17:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:6
注册日期:2009-02-09 10:54 |
当初我也迷茫了好长时间,搞不懂,就记着移一位就加个0,怎么说的是二进制左移就相当与*2,怎么10进制做移相当乘10,16进制相当于*16。
我算啊算的,比如2000H,左移一位,按照定义,应该*16,我乘啊乘的,怎么也不对。 后来一想,我靠,人家是16进制,你把16进制非要去乘10进制的16,能对吗? 应该把16转换成16进制就是10H拉。这样在乘就没错了。郁闷。
------------------
回复:
呵呵,你描述的还真生动。。。
我理解的整个过程就是你说的那样的 | | |
|
|
|
|
[第35楼]
[ 回复时间:2009-03-11 11:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-03-09 22:52 |
段地址为16的倍数实际上就是说段地址的末尾必须是0。
------------------
回复:把这句话理解就好了! | | |
|
|
|
|
[第36楼]
[ 回复时间:2009-03-17 13:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-03-17 13:02 |
为了这个问题 找到了这个论坛 不错~~~~~~~:) | | |
|
|
|
|
[第37楼]
[ 回复时间:2009-03-19 16:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-03-19 16:05 |
我也是刚起步,来到这个网站,当初也被这个问题迷住,现在解决了。 | | |
|
|
|
|
[第38楼]
[ 回复时间:2009-06-04 12:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-01 18:22 |
二进制*2
八进制*8
十进制*10
十六进制*16
其中2,8,10,16都是十进制的 要将十进制转换为相应的进制才行 我被迷惑很久了 ⊙﹏⊙b汗 | | |
|
|
|
|
[第39楼]
[ 回复时间:2009-06-09 03:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-06 16:46 |
我就纳闷了.书上为什么整个16进制的地址和十进制16相乘. 还不如直接统一成,十六进制:段地址*10H. | | |
|
|
|
|
[第40楼]
[ 回复时间:2009-07-25 21:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-07-23 20:48 |
书上2.8绝对有问题 主要是没说清楚 这让初学者怎么学啊 一个多的最大长度是64KB 意思不就是 以16位进制的段地址的首位来分段 即1000和2000 这之间的就是64KB 不过 他说那么麻烦干嘛? 还有 这有什么意义阿 | | |
|
|
|
|
[第41楼]
[ 回复时间:2009-07-25 21:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-07-23 20:48 |
如果是1000和3000 中间就有128KB 问题来了 偏移地址只能寻址64KB 于是乎 2000和3000就无法寻址了 所以 书里还是很罗嗦的 | | |
|
|
|
|
[第42楼]
[ 回复时间:2009-07-25 21:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-07-23 20:48 |
2.12又错了 123B0H到123BAH 长度应该是11字节吧!!!!!!!!! | | |
|
|
|
|
[第43楼]
[ 回复时间:2009-10-27 15:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-01 14:59 |
|
|
|
|
|
[第44楼]
[ 回复时间:2009-11-04 15:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2009-10-27 16:12 |
刚开始的时候,我也没看懂,后来自己用计算器算了一下,才懂了,十进制X16,其实数值上看,就相当于十六进制X10 | | |
|
|
|
|
[第45楼]
[ 回复时间:2009-12-20 19:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2007-08-20 03:11 |
二进制*2
八进制*8
十进制*10
十六进制*16
道理都是一样的,就是左移一位,后面补零
------------------
回复:错,全*16.
20-16=4;20根总线
2^4=16;2的4次方。
------------------
回复:呵呵,其实我没有说清楚,我以为大家都挺明白的~
实际上我列出的仅仅是以十进制数为基础,从纯数学运算的角度考虑,等效于:
二进制*10B
八进制*10Q
十进制*10D
十六进制*10H
对于不同进制数而言,都是左移1位。右边补一个0,哈哈 | | |
|
|
|
|
[第46楼]
[ 回复时间:2010-01-14 12:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-08 13:00 |
|
|
|
|
|
[第47楼]
[ 回复时间:2010-02-02 10:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-30 10:11 |
干嘛那么费劲呢,我是这样理解的,1000H是个16进制的数,而16是个10进制的数,所以,无论是左右转换统一进制,结果都是 10000H | | |
|
|
|
|
[第48楼]
[ 回复时间:2010-05-26 14:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-29 03:03 |
|
|
|
|
|
[第49楼]
[ 回复时间:2010-07-18 00:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-16 07:48 |
|
|
|
|
|
[第50楼]
[ 回复时间:2010-09-08 19:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41 |
|
|
|
|
|
[第51楼]
[ 回复时间:2010-11-09 14:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-06 01:57 |
问下。。。怎么发贴啊。。还有,那个寄存器那里,20000的数据,高8位是78,低8位是32。。。这个怎么和20000相等。。我不懂了。。还有后面的一个习题,是要写汇编指令的。。在哪写?。。我知道是mov ax,2。。然后就一直add ax,ax。。。就是不知道在哪写。。 | | |
|
|
|
|
[第52楼]
[ 回复时间:2011-02-01 10:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-02-01 10:19 |
我们一般用十六进制来表示段地址,段地址必须是十六的倍数,那么段地址可以这样理解:凡是段地址其最后一位必须是0. | | |
|
|
|
|
[第53楼]
[ 回复时间:2011-02-01 11:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-02-01 10:19 |
|
|
|
|
|
[第54楼]
[ 回复时间:2011-02-11 21:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-02 04:30 |
原来我也不太明白 今天看完你们的我终于明白了
------------------
回复:同感啊。。。 | | |
|
|
|
|
[第55楼]
[ 回复时间:2011-09-15 21:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-09-13 08:27 |
二进制*2
八进制*8
十进制*10
十六进制*16
其中2,8,10,16都是十进制的 要将十进制转换为相应的进制才行 我被迷惑很久了 ⊙﹏⊙b汗
------------------
回复:看到这里才算理解。我用XP自带的计算器也是用1000*16=16000把我都搞懵了。。。原来乘以16(10进制的)其实就是乘以10(16进制的) | | |
|
|
|
|
[第56楼]
[ 回复时间:2012-05-10 23:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-05-09 18:59 |
首先说,个人认为自己头脑不算灵光,但是我为什么提不出这样的问题呢?我好像根本就没想过这一点,就理解过去了。不过我有一点不明白:每个段的起始地址必须为16的整数倍,所以一个段最小为16B。为什么一个段最小为16B啊?前半句话,每个段的起始地址必须为16的整数倍,能作为后半句话,一个段最小为16B。的原因吗?不理解。物理地址,应该是指具体某一内存单元的物理地址吧? | | |
|
|
|
|
[第57楼]
[ 回复时间:2012-07-26 11:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-07-21 21:21 |
当初我也迷茫了好长时间,搞不懂,就记着移一位就加个0,怎么说的是二进制左移就相当与*2,怎么10进制做移相当乘10,16进制相当于*16。
我算啊算的,比如2000H,左移一位,按照定义,应该*16,我乘啊乘的,怎么也不对。 后来一想,我靠,人家是16进制,你把16进制非要去乘10进制的16,能对吗? 应该把16转换成16进制就是10H拉。这样在乘就没错了。郁闷。
------------------
回复:
哈哈,我开始也是这样乘啊乘怎么乘都不对.....郁闷 | | |
|
|
|
|
[第58楼]
[ 回复时间:2012-11-14 23:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-14 22:39 |
当初我也迷茫了好长时间,搞不懂,就记着移一位就加个0,怎么说的是二进制左移就相当与*2,怎么10进制做移相当乘10,16进制相当于*16。
我算啊算的,比如2000H,左移一位,按照定义,应该*16,我乘啊乘的,怎么也不对。 后来一想,我靠,人家是16进制,你把16进制非要去乘10进制的16,能对吗? 应该把16转换成16进制就是10H拉。这样在乘就没错了。郁闷。
------------------
回复:还是这个论坛好啊,我也是自学的,很迷茫书上的*16,找了很多网站,百度了好久,逛到这里,终于解开了我的谜团,自学就是苦啊,书都看到第4章了,总是想不通一些问题。上面的一句话点醒了我,以后要常来才行 | | |
|
|
|
|
[第59楼]
[ 回复时间:2013-04-18 11:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-08-21 09:46 |
是的,书上写的进制有点混乱的,一定要把进制弄清楚,才能明白书上写的意思
其实就是一个16进制数*16=进了一位,跟一个10进制数*10=进了一位一样 | | |
|
|
|
|
[第60楼]
[ 回复时间:2013-08-09 22:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-08-09 19:11 |
因为物理地址的最低位一定是偏移地址贡献的,所以段地址的最低位最多只能移到倒二位,移不到最低位的就一定是16(进制中的基数)的倍数。 (以上在16进制表达下) | | |
|
|
|
|
[第61楼]
[ 回复时间:2015-12-25 15:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-03-05 11:06 |
|
|
|
|
|
[第62楼]
[ 回复时间:2020-03-23 09:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2020-03-23 09:17 |
其实我是这样理解的:就是像左移动一个十六进制位!
比如:12FCH=1 0010 1111 1100B
向左一个一个十六进制位就是
向左移动一个十六进制位:12FC0H=0010 1111 1100 0000B
不知道我这样理解是否正确,希望大家可以指正. | | |
|
|
|
|
[第63楼]
[ 回复时间:2020-03-23 09:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2020-03-23 09:17 |
回复:[第62楼]
------------------
我这边没有用乘法,只是向左一动一个十六进制位而已 | | |