论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2508阅读
  • 8回复

[求助-软件问题]汇编的一句话不懂,说说啊都 [复制链接]

上一主题 下一主题
离线zbo0891
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-08-20 17:42:21
— 本帖被 kardel 执行锁定操作(2009-09-06) —
偏移地址是16位,16位的地址寻址能力怎么是64kb?怎么理解啊,高手说说,这64杂算出来的
离线kjojiu

发帖
1894
今日发帖
最后登录
2020-07-28
只看该作者 沙发  发表于: 2009-08-20 18:12:38
偏移地址是16,说明段内有16个存储地址。按LZ的意思是一个16位的存储器。

每位都可以存储0或者1(即2种方式),推算,总共可存储2的16次方字节,换算过来就是64KB。

其实LZ没有说明白,最好这句话的前后都写出来
1条评分
kardel 电魂 +5 闪电联盟因你而精彩! 2009-08-20
离线kardel

发帖
4477
今日发帖
最后登录
2015-01-12
只看该作者 板凳  发表于: 2009-08-20 19:26:42
楼上正解,就是2的16次方,2的10次方1024大家都知道,也就是1kb  那再乘以2的6次方64就等于64kb
离线zbo0891
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 地板  发表于: 2009-08-20 22:12:00
谢谢大家原话是

以后,在编程时可以根据需要,讲若干地址连续的内存单元看做一个段,用段地址*16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。有两点需要注意:段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64kb,所以一个段的长度最大为64kb

他说这64kb的含义是什么?直接说能找到16个内存单元不就行了?不明白作者想要表达的意思
还请指教
离线dym_david

发帖
361
今日发帖
最后登录
2024-05-11
只看该作者 地下室  发表于: 2009-08-20 22:14:21
虽然想学,但真的没有基础呀,不懂
离线zbo0891
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 5 发表于: 2009-08-20 22:18:10
我也没有基础,才在这里问问
离线kjojiu

发帖
1894
今日发帖
最后登录
2020-07-28
只看该作者 6 发表于: 2009-08-20 22:47:20
引用第3楼zbo0891于2009-08-20 22:12发表的 :
谢谢大家原话是
以后,在编程时可以根据需要,讲若干地址连续的内存单元看做一个段,用段地址*16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。有两点需要注意:段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64kb,所以一个段的长度最大为64kb
他说这64kb的含义是什么?直接说能找到16个内存单元不就行了?不明白作者想要表达的意思
.......


段地址*16+偏移地址=物理地址。

LZ说的应该是8086或者8088,

比如CS(代码段)=8000H,由于它是16位的,其物理地址存储单元为80000H~8FFFFH。

段地址是8000,它乘于16再换算成16进制即80000H,其实就相当于乘10,段内首地址是80000H,段内可存储的最末尾地址是8FFFFH,

即当前代码段可寻址的存储空间范围是80000~8FFFF,共(8FFFF-8000+1)个单元,注意不要漏掉要+1,这个不用解释吧...

(8FFFF-8000+1)个单元换算过来就是64KB。
离线yl_zyx1979
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 7 发表于: 2009-08-21 09:04:29
汇编语言很难学,楼上高手
离线zbo0891
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 8 发表于: 2009-08-21 17:11:54
回 6楼(kjojiu) 的帖子
高手,这样说就明白了,谢谢