32个字节的空间, 以此类推
data ends
段空间占用计算公式:
如果段中的数据占用N个字节,则程序加载后,该段实际占用空间为:
(N/16+1)*16
为什么说是现象呢
本质并不是因为段固定占用...字节地址开始存入,段的作用是让数据在内存中的排列按照一定的布局进行排列,方便我们进行计算读取, 但是使用段的话明显会占用更多的内存空间
各个段之间内存排列分布
数据段,栈段,代码段 他们在内存中开辟的空间是根据代码由上到下依次分布的..., 和代码的编写有关系
如果不加start标记的话,汇编代码默认由上往下执行,cs+ip从上往下,所过之处,全部被当做代码处理, 因此即便你在数据段中存放指令,甚至打入代码起始标签也没有问题:
assume...cs:code,ds:data
data segment
mov ax,2000H ;第一步 执行
data ends
;由于一个段所占空间为16的倍数,后面空位补0,被当做为指令对待,因此当在数据段中执行...16个字节代码后,由于段与段之间内存是连续分布的,如果ip的值刚好指向了代码段,那么紧接着执行代码段中的内容,如果ip没有指向代码段,则不执行, 这个情况是不可控的
code segment
mov