. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(CPU工作原理)
主题 : :
为什么将123c8分成1230跟00c8而不是1200,03c8?
[待解决]
回复[
13
次 ] 点击[
638
次 ]
helloworld
[帖 主]
[ 发表时间:2007-10-20 17:45 ]
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34
那个段地址x16的看不懂,好像要先把1230分出来,再x16才变成12300,但不知道为什么要抽前3位123而不是前两位12
bug
[第
5
楼]
[ 回复时间:2007-10-21 13:06 ]
荣誉值:22
信誉值:0
注册日期:2007-09-24 10:42
书上讲的是8086CPU,8086是16位cpu,它通过两个16地址合成一个20位物理地址(内存地址)。
20位物理地址 = 段地址 * 16 + 偏移地址。
物理地址123C8H, 可以分成多种段地址和偏移地址的组合,这种组合不是CPU拆分的,是程序员要操作这个地址,他设置好对应的段地址和偏移地址。知道满足 20位物理地址 = 段地址 * 16 + 偏移地址,都是对的。
8086CPU寄存器都是16位的,没办法存下123C8H这个地址,所以cpu无法直接使用123C8H地址。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved