汇编指令

汇编指令都是以.开头

.align integer, pad    //pad是用于填充的一般为空或0
The .align directive causes the next data generated to be aligned modulo integer bytes.
Integer must be a positive integer expression and must be a power of 2. If specifed, pad is an
integer bye value used for padding. The default value of pad for the text section is 0x90
(nop); for other sections, the default value of pad is zero (0).


.ascii "string"
The .ascii directive places the characters in string into the object module at the current
location but does not terminate the string with a null byte (\0). String must be enclosed in
double quotes (") (ASCII 0x22). The .ascii directive is not valid for the .bss section.


.bcd integer
The .bcd directive generates a packed decimal (80-bit) value into the current section. The
.bcd directive is not valid for the .bss section.


.bss
The .bss directive changes the current section to .bss.
.bss symbol, integer
Defne symbol in the .bss section and add integer bytes to the value of the location counter
for .bss. When issued with arguments, the .bss directive does not change the current
section to .bss. Integer must be positive.


.byte byte1,byte2,...,byteN
The .byte directive generates initialized bytes into the current section. The .byte directive
is not valid for the .bss section. Each byte must be an 8-bit value.


.2byte expression1, expression2, ..., expressionN
Refer to the description of the .value directive.


.4byte expression1, expression2, ..., expressionN
Refer to the description of the .long directive.


.8byte expression1, expression2, ..., expressionN
Refer to the description of the .quad directive.


.comm name, size,alignment
The .comm directive allocates storage in the data section. The storage is referenced by the
identifer name. Size is measured in bytes and must be a positive integer. Name cannot be
predefined. Alignment is optional. If alignment is specifed, the address of name is aligned to
a multiple of alignment.


.data
The .data directive changes the current section to .data.
.double float
The .double directive generates a double-precision floating-point constant into the current
section. The .double directive is not valid for the .bss section.
.even
The .even directive aligns the current program counter (.) to an even boundary

.ext expression1, expression2, ..., expressionN
The .ext directive generates an 80387 80–bit floating point constant for each expression into
the current section. The .ext directive is not valid for the .bss section.

.file "string"
The .file directive creates a symbol table entry where string is the symbol name and
STT_FILE is the symbol table type. String specifes the name of the source file associated with
the object file.


.float float
The .float directive generates a single-precision floating-point constant into the current
section. The .float directive is not valid in the .bss section.


.globl symbol1, symbol2, ..., symbolN
The .globl directive declares each symbol in the list to be global. Each symbol is either
defined externally or defined in the input file and accessible in other files. Default bindings
for the symbol are overridden. A global symbol defnition in one file satisfes an undefned
reference to the same global symbol in another fle. Multiple defnitions of a defned global
symbol are not allowed. If a defned global symbol has more than one defnition, an error
occurs. The .globl directive only declares the symbol to be global in scope, it does not defne
the symbol.

.group group, section, #comdat
The .group directive adds section to a COMDAT group. Refer to “COMDAT Section” in
Linker and Libraries Guide for additional information about COMDAT.

.hidden symbol1, symbol2, ..., symbolN
The .hidden directive declares each symbol in the list to have hidden linker scoping. All
references to symbol within a dynamic module bind to the definition within that module.
Symbol is not visible outside of the module.

.ident "string"
The .ident directive creates an entry in the .comment section containing string. String is any
sequence of characters, not including the double quote ("). To include the double quote
character within a string, precede the double quote character with a backslash (\) (ASCII
0x5C).

.lcomm name, size, alignment
The .lcomm directive allocates storage in the .bss section. The storage is referenced by the
symbol name, and has a size of size bytes. Name cannot be predefined, and size must be a
positive integer. If alignment is specifed, the address of name is aligned to a multiple of
alignment bytes. If alignment is not specifed, the default alignment is 4 bytes.

.local symbol1, symbol2, ..., symbolN
The .local directive declares each symbol in the list to be local. Each symbol is defined in the
input fle and not accessible to other fles. Default bindings for the symbols are overridden.
Symbols declared with the .local directive take precedence over weak and global symbols.
(See “Symbol Table Section” in Linker and Libraries Guide for a description of global and

weak symbols.) Because local symbols are not accessible to other fles, local symbols of the
same name may exist in multiple fles. The .local directive only declares the symbol to be
local in scope, it does not defne the symbol.

.long expression1, expression2, ..., expressionN
The .long directive generates a long integer (32-bit, two's complement value) for each
expression into the current section. Each expression must be a 32–bit value and must evaluate
to an integer value. The .long directive is not valid for the .bss section.

.popsection
The .popsection directive pops the top of the section stack and continues processing of the
popped section.

.previous
The .previous directive continues processing of the previous section.

.pushsection section
The .pushsection directive pushes the specifed section onto the section stack and switches
to another section.

.quad expression1, expression2, ..., expressionN
The .quad directive generates an initialized word (64-bit, two's complement value) for each
expression into the current section. Each expression must be a 64-bit value, and must evaluate
to an integer value. The .quad directive is not valid for the .bss section.

.rel symbol@ type
The .rel directive generates the specifed relocation entry type for the specifed symbol. The

.lit directive supports TLS (thread-local storage). Refer to Chapter 8, “Thread-Local
Storage,” in Linker and Libraries Guide for additional information about TLS.

.section section, attributes
The .section directive makes section the current section. If section does not exist, a new
section with the specifed name and attributes is created. If section is a non-reserved section,
attributes must be included the frst time section is specifed by the

转载于:https://www.cnblogs.com/xpylovely/p/11164248.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值