远山 发表于 2016-4-15 11:37:58

汇编实验5.2有些不解求指教

首先源程序:

然后编译连接用debug加载后如下:

可以看出cpu找到了段地址为075A的一段空地址用来装载程序,以075A开始的256个字节用来放在PSP,所以程序的地址被设为“075A+10=076A"。程序的开始段为数据段,段地址为076A;然后是栈段,用“r”指令查看结果后,可以看到当前执行的命令为“mov ax,076B”,该对应源程序中的“mov ax,stack“,所以可以看出栈段的段地址为”076B“,则其意为数据段共有16个字节型数据,可是我们明明之用”dw“指令定义了4个字节型数据啊,为什么数据段地址还是16个字节呢?有些困惑{:10_243:}

远山 发表于 2016-4-15 11:43:26

诶,好像有点明白了呢,一个段的起始地址必须是16的倍数,所以数据段和栈段之间最少要隔开16个字节?

远山 发表于 2016-4-15 14:19:52

{:10_256:}懂了
页: [1]
查看完整版本: 汇编实验5.2有些不解求指教