鱼C论坛

 找回密码
 立即注册
查看: 3003|回复: 2

汇编实验

[复制链接]
发表于 2022-3-22 13:36:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
汇编语言王爽老师第四版实验五的第二题,如果段中的数据占n个字节,则程序加载后,该段实际占有的空间为(N/16+1)*16.
麻烦大佬解释一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-22 14:58:27 | 显示全部楼层
本帖最后由 jackz007 于 2022-3-22 16:05 编辑

       因为段边界对齐,意思是,假如你定义的一个段只占用了 35h 个字节,那么,在编译的时候,编译程序将会为这个段实际分配 40h (64)个字节的空间,这样,相邻的下一个段就会从 10h 整数倍的位置开始。就是说,任何一个段总是会从 10h 整数倍的位置开始,并在 10h 整数倍的位置结束。关于这一点应该不难理解,因为,段地址最小的增减单位是 1,不正是对应于 10h (16)个字节吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-23 22:04:52 | 显示全部楼层
debug中用d命令,打开查看内存,一行是16个字节。我理解:定义的空间不够16个字节的话,它也会给你分配一行,也就是16个字节;大于16小于等于32个字节,它会给你分配两行,如果是33个,它就会分配给你三整行,即它会以16为基数,一行一行的给你分配空间。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 02:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表