汇编实验
汇编语言王爽老师第四版实验五的第二题,如果段中的数据占n个字节,则程序加载后,该段实际占有的空间为(N/16+1)*16.麻烦大佬解释一下 本帖最后由 jackz007 于 2022-3-22 16:05 编辑
因为段边界对齐,意思是,假如你定义的一个段只占用了 35h 个字节,那么,在编译的时候,编译程序将会为这个段实际分配 40h (64)个字节的空间,这样,相邻的下一个段就会从 10h 整数倍的位置开始。就是说,任何一个段总是会从 10h 整数倍的位置开始,并在 10h 整数倍的位置结束。关于这一点应该不难理解,因为,段地址最小的增减单位是 1,不正是对应于 10h (16)个字节吗? debug中用d命令,打开查看内存,一行是16个字节。我理解:定义的空间不够16个字节的话,它也会给你分配一行,也就是16个字节;大于16小于等于32个字节,它会给你分配两行,如果是33个,它就会分配给你三整行,即它会以16为基数,一行一行的给你分配空间。
页:
[1]