august 发表于 2009-4-16 16:56:04

王爽汇编实验题5的疑问

实验5第二题第四问
如下定义的段:
name segment
...
name ends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为?
占有的空间指所占用多少内存单元吗?如果是的话,那就应该N/8 吧。

但看到有的说是(N/16+1)*16 .
请问这题怎么理解?

rednaxela 发表于 2009-4-16 20:05:46

王爽是谁,王爽实验是什么?求详细

如果段中的数据占N个字节
都说是N字节了嘛,怎么会要除以8呢。

如果你看到答案说要跟16有关系,那肯定是因为他想说在那个架构上程序默认以16字节为边界对齐,所以不足16字节的部分数据也要填够16字节。“对齐”是alignment,这种填充叫做padding。

august 发表于 2009-4-16 23:15:27

题目就是这样了,没有再详细了。
问题是我没看明白这题意思,到底是占多少内存单元,还是看它的地址在哪里?
“该段实际占有的空间为?”这话是什么含义。

august 发表于 2009-4-17 01:08:00

就是说一个段就是1~16个字节,多出的比如现在有18个字节,多出的就当一个段,所以占了32个字节?

rednaxela 发表于 2009-4-17 18:17:57

现成的文献很多,我不想码字了……
这个时候你需要 http://en.wikipedia.org/wiki/Data_structure_alignment
页: [1]
查看完整版本: 王爽汇编实验题5的疑问