注册 登录
编程论坛 汇编论坛

8086段地址的规定是这样的?

qleevv 发布于 2007-01-12 16:21, 2322 次点击
有人说段地址必须是16的倍数?
123B,0001可以被定义为段地址么?
123B,0001好象不是16的倍数啊.这样好象不可以定义为段地址.
我有点迷茫了?难道16的倍数是指123B,0001左移后123B0,00010么.123B0,00010这个是段地址么?有5位了啊!!!
段地址的概念到底是什么啊?
我咋觉得好象是段的起始地址必须是16的倍数吧.

[此贴子已经被作者于2007-1-12 16:36:19编辑过]

5 回复
#2
菜鸟上路2007-01-12 17:42

是说段首址吧?如果采用数据对齐的话,可以说是段地址

#3
qleevv2007-01-12 17:50
以下是引用菜鸟上路在2007-1-12 17:42:33的发言:

是说段首址吧?如果采用数据对齐的话,可以说是段地址


没明白你的意思...可否通俗点...
#4
lefttime2007-01-12 17:59
[QUOTE]有人说段地址必须是16的倍数?[/QUOTE]
这句话是错的,但是如果说段地址必须是16位倒可以考虑考虑...
#5
菜鸟上路2007-01-12 18:25
123B*10H就是段首址,0001H是段内偏移
数据对齐:
如果存储器操作数的地址是该操作数尺寸的倍数,则说该操作数是对齐的。伪指令Align可以完成对齐功能.
注:操作数对齐可以有更快的访问速度,因此编译器往往对数据进行自动对齐,这是导致结构体的尺寸有时会大于结构体中各变量尺寸之和的根本原因。
#6
qleevv2007-01-15 10:58
xiexie le
1