. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
主题 : :  为什么要加1  [待解决] 回复[ 11次 ]   点击[ 450次 ]  
kankta
[帖 主] [ 发表时间:2012-12-16 09:56 ] 
荣誉值:0
信誉值:0
注册日期:2012-11-29 14:36
(2)一数据存放在内存20000H单元中,现给定段地址为SA,若用偏移地址寻到此单元,则SA最小最大各多少?

20000H=(SA*16+EA);EA取值范围:0000H~FFFFH---->SA*16=(20000H~10001H)

则SA为10001H/16~2000H;注意10001H/16取整应+1,则SA最小为1001H,最大为2000H。
notepad
[第8楼] [ 回复时间:2013-01-03 20:12 ] 
荣誉值:0
信誉值:0
注册日期:2013-01-03 20:06
为啥20位的要弄成16位的地址再加上段呢?我个人瞎猜这是为了和以前的旧16位程序兼容,不是说二进制代码兼容,至少是源程序级的兼容,另外也为了和以前程序员的16位编程思维习惯兼容。86刚出来时可是诸候争霸,并不象今天这样统一江山,没有兼容性就没有群众基础。。。
------------------
回复:看来你没好好看书。。8086的CPU地址总线20根,数据总线16根,为了全部利用20根地址总线,才需要段地址*16+偏移地址组成20位的。至于为什么地址总线20根,而数据总线16根,这才应该是为了兼容8位机的设定
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved