汇编器指令学习

汇编器指令在编译时起作用,用来控制汇编器的操作,不属于 CPU 指令集,因此称为伪指令。
下面例举汇编器指令可以做的部分事情:
1)为汇编器值指明程序的开始和结束位置
2)为数据提供存储位置
3)为变量赋值
4)定义不同段的开始和结束位置,在程序中定义宏等等。

下面介绍几个 x86 汇编器支持的指令
.align integer, pad
指明下一个生成的数据以模 integer 为对齐,其中 integer 必须要是 2 的幂,pad 用来指明填充的内容,对于 text section,是 0x90(nop),对于其他 section 是 0。

.bss
将当前 section 改为 .bss。

.byte byte1, byte2, ..., byteN
在当前 section 生成 N 个已初始化的字节,对 .bss section 无效。

.data
将当前 section 改为 .data

.double float
在当前 section 生成一个 double 精度的浮点数,对 .bss section 无效。

.global symbol1, symbol2, ..., symbolN
定义 N 个全局符号。

.ident "string"
在 .comment section 生成一个包含 "string" 的项。

.local symbol1, symbol2, ..., symbolN
定义 N 个局部符号

.popsection
将当前 section stack 中的栈顶 section 弹出,并继续处理被弹出的 section。

.pushsection section
将 section 推入当前 section stack 的栈顶,并将当前 section 改为 section。

.section section, attributes
将当前 section 设置为 section。

 

参考资料:

1. https://electronicsdesk.com/assembler-directives.html

2. https://docs.oracle.com/cd/E26502_01/html/E28388/eoiyg.html

猜你喜欢

转载自blog.csdn.net/choumin/article/details/115162885
今日推荐