调整偏移量的伪指令

来源:互联网 发布:有网络但下载速度为零 编辑:程序博客网 时间:2024/06/05 22:43

偶对齐伪指令EVEN

偶对齐伪指令格式:

EVEN

伪指令的作用是:告诉汇编程序(Assember),本伪指令下面的内存变量从下一个偶地址单元开始分配。

如果下一个偏移量是偶地址,那么,该伪指令不起作用,否则,汇编程序将空出一个字节,从下一偶地址开始为其后变量分配内存单元。

假设有下列变量定义,并且变量B1的偏移量是偶数,其内存单元分布如图4.2所示。

 B1DB12H;为了表示方便,不妨再假设其偏移量为:xxxx0HW1DW4567H

图4.2 内存单元分布图

图4.3 齐偏移量读取一个字的过程示意图

在上述定义情况下,在许多微机系统中,当需要读变量W1及其后面的字内容时,硬件将按图4.3所示的方式分二次读出该字内容,再拼接成一个字内容,这时,无疑需要二个读内存周期,从而影响程序执行的速度。

出现上述问题的主要原因就是字变量W1在数据段内的偏移量是奇数,为了保证其偏移量是偶数,需要在其定义之前加上伪指令EVEN。

所以,可把前面的变量定义改变成下列形式:

图4.4 偶偏移量读取字过程 B1DB12HEVENW1DW4567H这时,变量的内存分配和读取字变量W1的过程如图4.4所示。

4.3.2 对齐伪指令ALIGN

对齐伪指令格式:

http://zx.zynews.com/hyzx/yskt/5399493712.html
http://www.qdxw.com.cn/yx/yybd/2344759.html
http://www.zznews.cn/hyzx/jkxx/5416836145.html
http://www.zhiyin.cn/ylzx/gzpx/5396015327.html
http://www.zznews.cn/hyzx/jkxx/5416917449.html
http://zx.zynews.com/hyzx/yskt/5399501772.html
http://zx.zynews.com/hyzx/yskt/5405500310.html
http://zx.zynews.com/hyzx/yskt/5405501386.html
http://www.zznews.cn/hyzx/jkxx/5426636373.html
http://www.zhiyin.cn/ylzx/gzpx/5398210093.html
http://www.zznews.cn/hyzx/jkxx/5426641570.html
http://zx.zynews.com/hyzx/yskt/5405502902.html
http://www.zhiyin.cn/ylzx/gzpx/5398210551.html
http://zx.zynews.com/hyzx/yskt/5405503213.html
http://zx.zynews.com/hyzx/yskt/5405505653.html
http://zx.zynews.com/hyzx/yskt/5405506166.html


ALIGN  Num

其中:Num必须是2的幂,如:2、4、8和16等。

伪指令的作用是:告诉汇编程序,本伪指令下面的内存变量必须从下一个能被Num整除的地址开始分配。

如果下一个地址正好能被Num整除,那么,该伪指令不起作用,否则,汇编程序将空出若干个字节,直到下一个地址能被Num整除为止。

试比较下面二组变量定义,它们的对齐效果一致吗?

0 0
原创粉丝点击