¸ðµç ¾î¼Àºí·¯ Áö½ÃÀÚµéÀº `.'·Î ½ÃÀ۵ȴÙ. ³ª¸ÓÁö ±ÛÀÚµéÀº º¸Åë ¼Ò¹®ÀÚÀÌ´Ù.
ÀÌ Àå¿¡¼´Â GNU ¾î¼Àºí·¯°¡ ƯÁ¤ÇÑ ±â°è¿¡ ¸Â°Ô ±¸¼ºµÇ¾ú´ÂÁö¿¡´Â »ó°ü¾øÀÌ »ç¿ë °¡´ÉÇÑ Áö½ÃÀÚµéÀ» »ìÆ캼 °ÍÀÌ´Ù. ¾î¶² ±â°è¿¡¼ÀÇ ±¸¼ºÀº Ãß°¡ÀûÀÎ Áö½ÃÀÚµéÀ» Á¦°ø Çϱ⵵ ÇÑ´Ù. See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °ÍµéÀ» ÂüÁ¶Ç϶ó.
.abort
ÀÌ Áö½ÃÀÚ´Â ¾î¼Àºí¸® ÀÛ¾÷À» Áï°¢ ÁߴܽÃŲ´Ù. ÀÌ°ÍÀº ´Ù¸¥ ¾î¼Àºí·¯µé°ú
ȣȯ µÈ´Ù. ¿ø·¡ÀÇ »ý°¢Àº ¾î¼Àºí¸® ¼Ò½º°¡ ¾î¼Àºí·¯¿¡°Ô ¸í·ÉÀ» ³»¸®°íÀÚ
ÇÏ´Â µ¥ ÀÖ ¾ú´Ù. ¸¸ÀÏ ¼Ò½º Á¦°øÀÚ°¡ Á¾°áÇÑ´Ù¸é ±×°ÍÀº
as
¿¡°Ô ÀÌ Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© Á¾·á ÇÒ ¼öµµ ÀÖ´Ù. ¾ðÁ¨°¡´Â
.abort
´Â Á¦°øµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
.ABORT
COFF Ãâ·ÂÀ» »ý¼ºÇÒ ¶§, as
´Â `.abort'¿Í °°ÀÌ
Ãë±ÞÇÑ´Ù. `b.out'À» Ãâ·ÂÇÒ ¶§´Â, ÀÌ Áö½ÃÀÚ¸¦ ¹Þ¾ÆµéÀÌÁö¸¸, ¹«½ÃÇØ
¹ö¸°´Ù.
When producing b.out
output, as
accepts this directive,
but ignores it.
.align abs-expr , abs-expr
ÇöÀçÀÇ º¸Á¶¼½¼Ç¿¡¼ÀÇ À§Ä¡ Ä«¿îÅ͸¦ ¾î¶² °æ°è¼±¿¡ Á¤·Ä½ÃŲ´Ù. ù ¹ø° Ç¥Çö(Àý´ëÀûÀ̾î¾ß ÇÏ´Â)Àº À§Ä¡ Ä«¿îÅÍ°¡ ÁøôµÈ ÈÄ¿¡ °¡Áú ÀÛÀº ¼øÀ¸·Î Á¤·ÄµÈ ¼ýÀÚÀÌ´Ù. ¿¹¸¦ µé¸é '.align 3'Àº À§Ä¡Ä«¿îÅ͸¦ 8ÀÇ ¹è¼ö°¡ µÉ ¶§±îÁö Áøô½Ãų °ÍÀÌ´Ù. ¸¸ÀÏ À§Ä¡ Ä«¿îÅÍ°¡ 8ÀÇ ¹è¼öÀÌ¸é ¾Æ¹«·± º¯Èµµ ÇÊ¿äÄ¡ ¾Ê´Ù. µÎ ¹ø° Ç¥Çö(¿ª½Ã Àý´ëÀû)Àº º¸ÅÂÁö´Â ¹ÙÀÌÆ®¿¡¼ ÀúÀåµÉ °ªÀ» ÀǹÌÇÑ´Ù. ±×°ÍÀº (ÄÞ¸¶¿Í ÇÔ²²) ¾øÀ» ¼öµµ ÀÖ´Ù. ¸¸ÀÏ ±×°ÍÀÌ ¾ø´Ù¸é, º¸ÅÂÁö´Â ¹ÙÀÌÆ®´Â 0ÀÌ µÉ °ÍÀÌ´Ù. For the alpha, if the section is marked as containing code and the padding expression is omitted, then the space is filled with no-ops.
The way the required alignment is specified varies from system to system. For the a29k, hppa, m68k, m88k, w65, sparc, and Hitachi SH, and i386 using ELF format, the first expression is the alignment request in bytes. For example `.align 8' advances the location counter until it is a multiple of 8. If the location counter is already a multiple of 8, no change is needed.
For other systems, including the i386 using a.out format, it is the number of low-order zero bits the location counter must have after advancement. For example `.align 3' advances the location counter until it a multiple of 8. If the location counter is already a multiple of 8, no change is needed.
This inconsistency is due to the different behaviors of the various
native assemblers for these systems which GAS must emulate.
GAS also provides .balign
and .p2align
directives,
described later, which have a consistent behavior across all
architectures (but are specific to GAS).
.app-file string
.app-file
('.file'°ú °°ÀÌ ÇÒ ¼öµµ ÀÖ´Ù)
˼ as
¿¡°Ô »õ·Î¿î ÆÄÀÏÀ» ½ÃÀÛÇÏ°í ÀÖÀ½À» ¾Ë¸°´Ù.
ÀϹÝÀûÀ¸·Î, ÀÌ ÆÄÀÏÀ̸§Àº `"'¿¡ µÑ·¯½Î¿©Áø´Ù. ¸¸ÀÏ ÆÄÀÏÀ̸§ À»
¸í½ÃÇÏÁö ¾Ê´Â´Ù¸é, ""
·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ±¸¹®Àº ¾ÕÀ¸·Î´Â
»ç¶óÁú °Í ÀÌ´Ù. ¿À·¡µÈ as
ÇÁ·Î±×·¥µé°úÀÇ È£È¯¼º
Ãø¸é¿¡¼¸¸ Á¦°øµÈ´Ù.
.ascii "string"
...
.ascii
´Â ÄÞ¸¶¿¡ ÀÇÇØ ±¸ºÐµÈ 0º¸´Ù ¸¹Àº ±ÛÀÚµéÀ»
±â´ëÇÑ´Ù(see section ¹®ÀÚ¿). ÀÌ°ÍÀº °¢°¢ÀÇ ¹®ÀÚ¿À» ¿¬¼ÓµÈ ÁÖ¼Ò·Î
¾î¼ÀºíÇÑ´Ù. °¢°¢ÀÇ ¹®ÀÚ¿ÀÇ ³¡ ¿¡´Â 0ÀÇ °ªÀ» °¡Áö´Â ÇϳªÀÇ ¹ÙÀÌÆ®°¡
µû¶ó¿ÀÁö ¾Ê´Â´Ù.
.asciz "string"
...
.asciz
˼ .ascii
¿Í °°À¸³ª °¢°¢ÀÇ ¹®ÀÚ¿¿¡´Â 0ÀÇ °ªÀ»
°¡Áö´Â ÇѹÙÀÌÆ®°¡ µû ¶ó¿Â´Ù. .asciz
ÀÇ "z"Àº "zero"¸¦
ÀǹÌÇÑ´Ù.
.balign[wl] abs-expr , abs-expr
Pad the location counter (in the current subsection) to a particular storage boundary. The first expression (which must be absolute) is the alignment request in bytes. For example `.balign 8' advances the location counter until it is a multiple of 8. If the location counter is already a multiple of 8, no change is needed.
The second expression (also absolute) gives the value to be stored in the padding bytes. It (and the comma) may be omitted. If it is omitted, the padding bytes are zero.
The .balignw
and .balignl
directives are variants of the
.balign
directive. The .balignw
directive treats the fill
pattern as a two byte word value. The .balignl
directives treats the
fill pattern as a four byte longword value. For example, .balignw
4,0x368d
will align to a multiple of 4. If it skips two bytes, they will be
filled in with the value 0x368d (the exact placement of the bytes depends upon
the endianness of the processor). If it skips 1 or 3 bytes, the fill value is
undefined.
.byte expressions
.byte
´Â ÄÞ¸¶¿¡ ÀÇÇØ ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ Ç¥ÇöÀ» ±â´ëÇÑ´Ù. °¢°¢ÀÇ
Ç¥ÇöÀº ´ÙÀ½ÀÇ ¹ÙÀÌÆ®·Î ¾î¼ÀºíµÈ´Ù.
.comm symbol , length
.comm
Àº bss ¼½¼ÇÀÇ °øÅëµÇ´Â ¿µ¿ªÀ» ¼±¾ðÇÑ´Ù. º¸ÅëÀº
ld
´Â ¸µÅ© ÀÛ¾÷À» ÇÒ µ¿¾È .comm
À» À§ÇØ ¸Þ¸ð¸® ÁÖ¼Ò¸¦
¿¹¾àÇÏ´Â µ¥, ºÎºÐÀûÀÌ ¾Æ´Ñ ÇÁ·Î±×·¥Àº ½Éº¼ ÀÇ À§Ä¡¸¦ Á¤ÀÇÇÑ´Ù. .commÀ»
»ç¿ëÇϸé ld
¿¡°Ô Àû¾îµµ length ¸¸ÅÀÇ ¹ÙÀÌÆ®°¡ ÇÊ¿äÇÔÀ»
¾Ë¸± ¼ö ÀÖ´Ù. ld
´Â °¢°¢ÀÇ .comm
½Éº¼À» À§Çؼ Àû¾îµµ
¸µÅ©µÈ ºÎºÐÀû ÀÎ ÇÁ·Î±×·¥µéÀÇ ¾îµð¿¡¼³ª .comm
ÀÌ ¿ä±¸ÇÑ Å©±â ¸¸ÅÀ»
ÇÒ´çÇÒ °ÍÀÌ´Ù. length ´Â Àý´ëÀûÀΠǥÇöÀÌ´Ù.
The syntax for .comm
differs slightly on the HPPA. The syntax is
`symbol .comm, length'; symbol is optional.
.data subsection
.data
´Â as
¿¡°Ô µû¶ó¿À´Â ±¸¹®À» subsection
(Àý´ëÀû Ç¥Çö)À¸·Î ¹øÈ£°¡ ºÙ¿©Áø data subsectionÀÇ ³¡ºÎºÐ¿¡ ¾î¼Àºí Çϵµ·Ï
ÇÑ´Ù. ¸¸ÀÏ subsection ÀÌ ¾ø´Ù¸é, ±× °ÍÀº ±âº»ÀûÀ¸·Î 0ÀÌ µÉ
°ÍÀÌ´Ù.
.def name
½Éº¼ name À» À§Çؼ µð¹ö±ë Á¤º¸¸¦ Á¤ÀÇÇÑ´Ù. ±× Á¤ÀÇ´Â
.endef
Áö½ÃÀÚ°¡ ³ª¿Ã ¶§±îÁö È®ÀåµÈ´Ù.
ÀÌ Áö½ÃÀÚ´Â as °¡ COFF Æ÷¸Ë Ãâ·ÂÀ¸·Î ¼³Á¤µÇ¾ú´Ù¸é ´ÜÁö °¨Áö¸¸ µÈ´Ù.
b.out
À» ¸¸µé¾î ³¾ ¶§´Â `.def'´Â ÀνÄÀº µÇ³ª ¹«½ÃµÈ´Ù.
.desc symbol, abs-expression
ÀÌ Áö½ÃÀÚ´Â ½Éº¼ÀÇ ±â¼úÀÚ¸¦ absolute expression ÀÇ ÇÏÀ§ 16ºñÆ®·Î ¼³Á¤ÇÑ´Ù. (see section ½Éº¼ÀÇ ¼Ó¼º)
ÀÌ `.desc' Áö½ÃÀÚ´Â as
°¡ COFF Ãâ·ÂÀ¸·Î ¼³Á¤µÇ¾ú´Ù¸é
À¯È¿ÇÏÁö ¾Ê´Ù. ÀÌ°ÍÀº ´ÜÁö a.out
À̳ª b.out
¸ñÀû Æ÷¸ËÀÏ
¶§¿¡¸¸ À¯È¿ÇÏ´Ù. ȣȯ¼ºÀ» À§Çؼ, as
´Â ±× °ÍÀ» Çã¿ëÇϳª
COFF ¼³Á¤ÀÏ ¶§¿¡´Â ¾Æ¹«·± Ãâ·Âµµ »ý¼ºÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.
.dim
ÀÌ Áö½ÃÀÚ´Â ½Éº¼Å×ÀÌºí¿¡ Ãß°¡ÀûÀÎ µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇϵµ·Ï ÄÄÆÄÀÏ·¯¿¡°Ô
Áö½ÃÇÑ´Ù.
It is only permitted inside
.def
/.endef
pairs.
.dim
Àº COFF Æ÷¸ËÀ» Ãâ·ÂÇÒ ¶§¿¡¸¸ Àǹ̰¡ ÀÖ´Ù. as
°¡ b.out À» »ý¼ºÇÒ ¶§ ¿¡´Â ÀÌ Áö½ÃÀÚ¸¦ ¹Þ¾ÆµéÀ̱â´Â Çϳª ¹«½ÃÇØ ¹ö¸°´Ù.
.double flonums
.double
Àº ÄÞ¸¶·Î ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ flonumsÀ» ±â´ëÇÑ´Ù. ±×°ÍÀº
ºÎµ¿ ¼Ò¼ý Á¡ ¼ýÀÚ·Î ¾î¼ÀºíµÈ´Ù.
Á¤È®ÇÑ ºÎµ¿¼Ò¼ýÁ¡ ¼ýÀÚÀÇ Á¾·ù´Â as
°¡ ¾î¶»°Ô ¼³Á¤µÇ¾î
ÀÖ´À³Ä¿¡ µû¸¥´Ù. See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.eject
¾î¼Àºí¸® ¸®½ºÆ®¸¦ Ãâ·ÂÇÒ ¶§ ÀÌ ½ËÁ¡¿¡¼ ÆäÀÌÁö¸¦ ³Ñ±ä´Ù.
.else
.else
´Â as
°¡ Á¦°øÇÏ´Â Á¶°ÇÀûÀÎ ¾î¼Àºí¸®ÀÇ
ÇѺκÐÀÌ´Ù. see section .if absolute expression
¸¦ ÂüÁ¶Ç϶ó. ±×°ÍÀº .if
¿¡
µû¸£´Â Á¶°ÇÀÌ °ÅÁþÀÏ °æ¿ì ¾î¼ÀºíµÉ ÄÚµåÀÇ ½ÃÀۺκÐÀ» Ç¥½ÃÇÑ´Ù.
.endef
ÀÌ Áö½ÃÀÚ´Â .def
·Î Á¤ÀÇµÈ ½Éº¼ÀÇ ³¡À» Ç¥½ÃÇÑ´Ù.
`.endif'´Â COFF Æ÷¸Ë Ãâ·Â½Ã¿¡¸¸ Àǹ̰¡ ÀÖ´Ù. as
°¡
b.out
À» »ý¼ºÇϵµ·Ï ¼³ Á¤µÇ¾ú´Ù¸é ÀÌ Áö½ÃÀÚ¸¦ ¹Þ¾ÆµéÀ̱â´Â Çϳª
¹«½ÃµÈ´Ù.
.endif
.endif
´Â as
°¡ Á¦°øÇÏ´Â Á¶°ÇÀû ¾î¼Àºí¸®ÀÇ
ÀϺκÐÀÌ´Ù. ÀÌ°ÍÀº Á¶°ÇÀûÀ¸·Î ¾î¼ÀºíµÈ ÄÚµåÀÇ ºí·ÏÀÇ ¸¶Áö¸·À» Ç¥½ÃÇÑ´Ù.
See section .if absolute expression
.
.equ symbol, expression
ÀÌ Áö½ÃÀÚ´Â symbolÀÇ °ªÀ» expressionÀ¸·Î ¼³Á¤ÇÑ´Ù. ÀÌ°ÍÀº
`.set'°ú °°Àº ¶æ ÀÌ´Ù; see section .set symbol
, expression.
The syntax for equ
on the HPPA is
`symbol .equ expression'.
.extern
.extern
Àº ´Ù¸¥ ¾î¼Àºí·¯µé°úÀÇ È£È¯¼ºÀ» À§Çؼ ¼Ò½º ÇÁ·Î±×·¥¿¡
³ªÅ¸³ª´Â °ÍÀ» Çã¿ëÇÑ´Ù. ±×·¯³ª ÀÌ°ÍÀº ¹«½ÃµÈ´Ù. as
´Â
¸ðµç Á¤ÀǵÇÁö ¾ÊÀº ½Éº¼À» external ·Î Ãë±ÞÇÑ´Ù.
.file string
.file
(`.app-file'·Î ºÒ¸®¿öÁö±âµµ ÇÑ´Ù.) Àº »õ·Î¿î ³í¸®ÀûÀÎ
ÆÄÀÏÀÇ ½ÃÀÛÀÓ À» as
¿¡°Ô ¾Ë¸°´Ù. stringÀº »õ·Î¿î ÆÄÀÏÀÇ
À̸§ÀÌ´Ù. ÀϹÝÀûÀ¸·Î, ÀÌ ÆÄÀÏÀ̸§Àº `"'·Î µÑ·¯½ÎÀδÙ. ±×·¯³ª
ÆÄÀÏÀ̸§À» ¸í½ÃÇÏÁö ¾ÊÀ¸·Á¸é `""'¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ ´Ù. ÀÌ ±¸¹®Àº ¾ÕÀ¸·Î´Â
»ç¶óÁú °ÍÀÌ´Ù. ÀÌ°ÍÀº ´ÜÁö ¿À·¡µÈ as
ÇÁ·Î±×·¥°úÀÇ È£È¯
¼ºÀ» À§ÇÑ °ÍÀÌ´Ù.
¾î¶² as
ÀÇ ±¸¼º¿¡¼´Â .fileÀº ´Ù¸¥
¾î¼Àºí·¯µé°úÀÇ Ãæµ¹À» ÇÇ Çϱâ À§Çؼ Á¦°ÅµÇ¾ú´Ù. See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.fill repeat , size , value
result, size, value ´Â Àý´ëÀûÀΠǥÇöÀÌ´Ù. ÀÌ°ÍÀº
size ¹ÙÀÌÆ®¸¸Å º¹»ç¸¦ ¹Ý º¹ÇÑ´Ù. Repeat Àº 0ÀÌ»óÀÌ µÉ
°ÍÀÌ´Ù. Size´Â 0ÀÌ»óÀÌ µÉ ¼ö ÀÖÀ¸³ª ´Ù¸¥ ¾î¼À ºí·¯µé°úÀÇ È£È¯¼ºÀ»
À§Çؼ 8ÀÌ»óÀÏ °ÍÀÌ´Ù. °¢°¢ÀÇ repeat ¹ÙÀÌÆ®µéÀÇ ±¸¼ºÀº 8 ¹ÙÀÌÆ®
¼ýÀڷκÎÅÍ ÃëÇØÁø´Ù. »óÀ§ 4¹ÙÀÌÆ®´Â 0ÀÌ´Ù. ÇÏÀ§ 4¹ÙÀÌÆ®´Â
as
°¡ ¾î¼Àºí ¸µÇÏ´Â ÄÄÇ»ÅÍ»óÀÇ Á¤¼öÀÇ ¹ÙÀÌÆ®¼ø¼·Î µÇ´Â
valueÀÌ´Ù. ÇÑ ¹øÀÇ ¹Ýº¹¿¡¼ °¢°¢ ÀÇ size ¹ÙÀÌÆ®´Â ÀÌ ¼ýÀÚÀÇ ³·Àº
¼øÀ¸·Î Á¤·ÄµÈ size ¹ÙÀÌÆ®·Î ºÎÅÍ ÃëÇÑ´Ù. ´Ù½Ã ¸»ÇÏÁö¸¸ ÀÌ ±â±«ÇÑ
ÇൿÀº ´Ù¸¥ »ç¶÷µéÀÇ ¾î¼Àºí·¯µé°ú ȣȯ¼ºÀ» °¡Áö°Ô Çϱâ À§ÇÑ °ÍÀÌ´Ù.
size ¿Í value ´Â ¼±ÅûçÇ×ÀÌ´Ù. ¸¸ÀÏ µÎ ¹ø° ÄÞ¸¶¿Í value°¡ ¾ø´Ù¸é, value´Â 0 À¸·Î °¡Á¤µÈ´Ù. ¸¸ÀÏ Ã¹ ¹ø° ÄÞ¸¶¿Í µû¶ó¿À´Â ÅäÅ«ÀÌ ¾ø´Ù¸é size ´Â 1·Î °¡Á¤µÈ´Ù.
.float flonums
ÀÌ Áö½ÃÀÚ´Â ÄÞ¸¶¿¡ ÀÇÇØ ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ flonums¸¦ ¾î¼ÀºíÇÑ´Ù. ÀÌ
°ÍÀº .single
°ú °°Àº ¶æÀÌ´Ù.
Á¤È®ÇÑ ºÎµ¿¼Ò¼ýÁ¡ ¼ýÀÚÀÇ Á¾·ù´Â
as
°¡ ¾î¶»°Ô ¼³Á¤ µÇ¾ú´À³Ä¿¡ µû¸¥´Ù.
See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.global symbol
, .globl symbol
.global
˼ ld
¿¡°Ô º¸ÀÌ´Â ½Éº¼À» ¸¸µç´Ù. ¸¸ÀÏ
¿©·¯ºÐÀÌ symbolÀ» ¿©·¯ºÐÀÇ ºÎºÐÀûÀÎ ÇÁ·Î±×·¥¿¡ ¸¸µç´Ù¸é, ±×°ÍÀÇ
°ªÀº ±×°ÍÀÌ ¸µÅ©µÇ´Â ´Ù¸¥ ºÎºÐÀûÀÎ ÇÁ ·Î±×·¥µé¿¡°Ôµµ À¯È¿ÇÏ°Ô µÈ´Ù.
±×·¸Áö ¾Ê´Ù¸é, symbol Àº ±×°ÍÀÌ ¸µÅ©µÇ´Â ´Ù¸¥ ºÎºÐÀûÀÎ
ÇÁ·Î±×·¥À¸·Î ºÎÅÍ °°Àº À̸§ÀÇ ½Éº¼ÀÇ ¼Ó¼ºÀ» °¡Áú °ÍÀÌ´Ù.
`.globl'°ú `.global' µÑ ´Ù ´Ù¸¥ ¾î¼Àºí·¯µé°úÀÇ È£È¯¼ºÀ» À§Çؼ
Çã¿ëµÈ´Ù.
On the HPPA, .global
is not always enough to make it accessible to other
partial programs. You may need the HPPA-only .EXPORT
directive as well.
See section HPPA Assembler Directives.
.hword expressions
ÀÌ°ÍÀº 0°³ÀÌ»óÀÇ expressions ¸¦ ±â´ëÇÑ´Ù. ±×¸®°í °¢°¢Àº 16 ºñÆ® ¼ýÀÚÀÌ´Ù.
ÀÌ Áö½ÃÀÚ´Â ÇØ´ç ±â°è¿¡ ÀÇÁ¸ÇÏ´Â `.short'¿Í °°Àº ¶æÀ̸ç, ¶ÇÇÑ `.word'¿Í µµ °°Àº ¶æÀÏ °ÍÀÌ´Ù.
.ident
ÀÌ Áö½ÃÀÚ´Â ¾î¶² ¾î¼Àºí·¯µéÀÌ ¸ñÀûÆÄÀÏ¿¡ ű׸¦ ¼³Ä¡ÇÏ´Â µ¥¿¡ »ç¿ëµÈ´Ù.
as
´Â ´Ù¸¥ ¾î¼Àºí·¯µé°úÀÇ ¼Ò½ºÆÄÀÏ È£È¯¼ºÀ» À§Çؼ ±×·¯ÇÑ
Áö½ÃÀÚ¸¦ Çã¿ëÇÑ ´Ù. ±×·¯³ª ±×°ÍÀ» À§ÇØ º°´Ù¸¥ °ÍÀÌ È°¼ºÈµÇÁö´Â ¾ÊÀ»
°ÍÀÌ´Ù.
.if absolute expression
.if
´Â ¸¸ÀÏ ÀÎÀÚ(absolute expressionÀ̾î¾ß ÇÏ´Â)°¡ 0ÀÌ
¾Æ´Ï¶ó¸é ¾î¼ÀºíµÇ´Â ¼Ò½º ÇÁ·Î±×·¥ÀÇ ÀϺκÐÀ¸·Î ±¸¼ºµÇ´Â Äڵ念¿ªÀÇ
½ÃÀÛÀ» Ç¥½ÃÇÑ´Ù. ±× Á¶°ÇÀûÀÎ ÄÚ µå¿µ¿ªÀÇ ³¡Àº .endif
¿¡ ÀÇÇØ
¸¶Å©µÈ´Ù. (see section .endif
). ¼±ÅÃÀû À¸·Î .else
·Î
Ç¥½ÃµÇ´Â ¼±ÅÃÀûÀÎ Á¶°ÇÀ» À§ÇÑ Äڵ带 Æ÷ÇÔ½Ãų ¼öµµ ÀÖ´Ù.
(see section .else
)
¾Æ·¡¿Í °°Àº .if
ÀÇ ´Ù¸¥ º¯Çüµéµµ Á¦°øµÈ´Ù.
.ifdef symbol
.ifndef symbol
.ifnotdef symbol
.include "file"
ÀÌ Áö½ÃÀÚ´Â ¼Ò½º ÇÁ·Î±×·¥¿¡¼ ¸í½ÃµÈ À§Ä¡¿¡ Á¦°øµÇ´Â ÆÄÀÏÀ» Æ÷ÇÔÇÏ´Â
¹æ¹ý À» Á¦°øÇÑ´Ù. file ¿¡ ÀÖ´Â ÄÚµå´Â .include
ÀÇ À§Ä¡¿¡
µû¶ó¿À´Â °Íó·³ ¾î¼Àºí µÇ¸ç, Æ÷ÇԵǴ ÆÄÀÏÀÇ ³¡ÀÌ ³ªÅ¸³ª¸é ¿ø·¡ ÆÄÀÏÀÇ
¾î¼ÀºíÀº ´Ù½Ã °è¼ÓµÈ´Ù. `-I' ¸í·ÉÇà ¿É¼Ç (see section ¸í·ÉÇà)À» »ç¿ëÇÏ¿© °Ë»ö°æ·Î¸¦ Á¦ ¾îÇÒ ¼ö ÀÖ´Ù. file ¾ÕµÚ·Î
ÀοëºÎÈ£°¡ ÇÊ¿äÇÏ´Ù.
.int expressions
ÄÞ¸¶¿¡ ÀÇÇØ ±¸ºÐµÇ´Â ¾î¶² ¼½¼ÇÀÇ 0°³ ÀÌ»óÀÇ expressionsÀ» ÀûÀ» ¼ö ÀÖ´Ù. °¢°¢ÀÇ Ç¥ÇöÀº ½ÇÇà½Ã¿¡ ±× Ç¥ÇöÀÇ °ªÀÌ µÉ 32ºñÆ® ¼ýÀÚ°¡ µÉ °ÍÀÌ´Ù. expression¿¡¼ ÀÇ ¹ÙÀÌÆ® ¼ø¼´Â ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡´Â ÄÄÇ»ÅÍÀÇ Á¾·ù¿¡ µû¶ó ´Ù¸£´Ù.
.irp symbol,values
...
Evaluate a sequence of statements assigning different values to symbol.
The sequence of statements starts at the .irp
directive, and is
terminated by an .endr
directive. For each value, symbol is
set to value, and the sequence of statements is assembled. If no
value is listed, the sequence of statements is assembled once, with
symbol set to the null string. To refer to symbol within the
sequence of statements, use \symbol.
For example, assembling
.irp param,1,2,3 move d\param,sp@- .endr
is equivalent to assembling
move d1,sp@- move d2,sp@- move d3,sp@-
.irpc symbol,values
...
Evaluate a sequence of statements assigning different values to symbol.
The sequence of statements starts at the .irpc
directive, and is
terminated by an .endr
directive. For each character in value,
symbol is set to the character, and the sequence of statements is
assembled. If no value is listed, the sequence of statements is
assembled once, with symbol set to the null string. To refer to
symbol within the sequence of statements, use \symbol.
For example, assembling
.irpc param,123 move d\param,sp@- .endr
is equivalent to assembling
move d1,sp@- move d2,sp@- move d3,sp@-
.lcomm symbol , length
symbol ¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â Áö¿ªÀûÀ¸·Î °øÅëµÇ´Â °ÍµéÀ» À§Çؼ
length (Àý´ëÀû Ç¥Çö) ¹ÙÀÌÆ®¸¸ÅÀ» ¿¹¾àÇÑ´Ù. symbolÀÇ ¼½¼Ç°ú
°ªÀº »õ·Î¿î Áö¿ªÀûÀÎ °øÅëµÇ´Â °ÍµéÀÌ´Ù. ±× ÁÖ¼Ò´Â bss ¼½¼Ç¿¡ ÇÒ´çµÇ°í,
½ÇÇà½Ã ±× ¹ÙÀÌÆ®´Â 0ºÎÅÍ ½ÃÀÛµÉ °Í ÀÌ´Ù. Symbol Àº global·Î
¼±¾ðµÇÁö ¾Ê´Â´Ù. (see section .global symbol
, .globl symbol
) ±×·¡¼ Symbol
˼ ld
¿¡°Ô´Â º¸ÀÌÁö ¾Ê´Â´Ù.
The syntax for .lcomm
differs slightly on the HPPA. The syntax is
`symbol .lcomm, length'; symbol is optional.
.lflags
as
´Â ´Ù¸¥ ¾î¼Àºí·¯µé°úÀÇ È£È¯¼º Â÷¿ø¿¡¼ Çã¿ëÇϳª
±×°ÍÀ» °ð¹Ù·Î ¹«½ÃÇØ ¹ö¸°´Ù.
.line line-number
as
¿¡°Ô ³í¸®ÀûÀÎ ÁÙ ¹øÈ£¸¦ ¹Ù²Ùµµ·Ï Áö½ÃÇÑ´Ù.
line-number Àº Àý´ëÀû Ç¥Çö À̾î¾ß ÇÑ´Ù. ±× ´ÙÀ½ ÁÙÀº ³í¸®ÀûÀÎ ÁÙ
¹øÈ£¸¦ °¡Áú °ÍÀÌ´Ù. ±×·¡¼ ÇöÀçÀÇ ÁÙ (±¸ºÐÀÚ ±¸¹® ÀÌÈÄ¿¡)¿¡¼ ´Ù¸¥ ¾î¶²
±¸¹®µéµµ ³í¸®ÀûÀÎ ÁÙ¹øÈ£ line-number - 1 ·Î º¸°í µÉ °ÍÀÌ´Ù.
ÀÌ Áö½ÃÀÚµµ ¾ðÁ¨°¡´Â Á¦°øµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº ´ÜÁö ´Ù¸¥ ¾î¼Àºí·¯
ÇÁ·Î±×·¥µé°úÀÇ È£È¯¼º Ãø¸é¿¡¼ »ç¿ëµÈ´Ù.
°æ°í: as
ÀÇ AMD29K ¼³Á¤¿¡¼´Â ÀÌ·¯ÇÑ ¸í·ÉÀº ´ÜÁö
.line
À̳ª .ln
Áß .ln
¸¸ÀÌ À¯È¿ÇÏ´Ù.
ÀÌ°ÍÀº a.out
°ú b.out
¸ñÀûÄÚµå Æ÷¸Ë°úµµ °ü°èµÇ´Â
Áö½ÃÀÚÀ̸ç, as
´Â COFF Ãâ·ÂÀ» »ý¼ºÇÒ ¶§¿¡µµ ±×°ÍÀ»
ÀνÄÇÏ¿©, ±×°ÍÀÌ .def
/.endef
¦ÀÇ ¿Ü°û¿¡ ÀÖ´Ù¸é
`.line'À» COFF `.ln'À¸·Î Ãë±ÞÇÒ °ÍÀÌ´Ù.
.def
¾ÈÂÊÀÇ `.line' Àº ´ë½Å, µð¹ö±ëÀ» À§ÇÑ Ãß°¡ÀûÀÎ ½Éº¼
Á¤º¸¸¦ »ý¼ºÇÏ´Â µ¥¿¡ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ç¿ëµÇ´Â Áö½ÃÀÚÀÇ ÇϳªÀÌ´Ù.
.linkonce [type]
Mark the current section so that the linker only includes a single copy of it.
This may be used to include the same section in several different object files,
but ensure that the linker will only include it once in the final output file.
The .linkonce
pseudo-op must be used for each instance of the section.
Duplicate sections are detected based on the section name, so it should be
unique.
This directive is only supported by a few object file formats; as of this writing, the only object file format which supports it is the Portable Executable format used on Windows NT.
The type argument is optional. If specified, it must be one of the following strings. For example:
.linkonce same_size
Not all types may be supported on all object file formats.
discard
one_only
same_size
same_contents
.ln line-number
`.ln' Àº `.line'°ú µ¿ÀǾîÀÌ´Ù.
.mri val
If val is non-zero, this tells as
to enter MRI mode. If
val is zero, this tells as
to exit MRI mode. This change
affects code assembled until the next .mri
directive, or until the end
of the file. See section Assemble in MRI Compatibility Mode: -M
.
.list
.nolist
Áö½ÃÀÚ¿Í ´õºÒ¾î »ý¼ºµÇ´Â ¾î¼Àºí¸® ¸®½ºÆÃÀ» Á¦¾îÇÑ´Ù. ÀÌ
µÎ °³ÀÇ Áö½ÃÀÚ´Â ³»ºÎÀûÀÎ Ä«¿îÅÍ(0À¸·Î ÃʱâȵǴÂ)¸¦ °ü¸®ÇÑ´Ù.
.list
´Â Ä«¿îÆ®¸¦ Áõ°¡½ÃÅ°°í, .nolist
´Â °¨¼Ò½ÃŲ´Ù.
¾î¼Àºí¸® ¸®½ºÆÃÀº Ä«¿îÅÍ°¡ 0ÀÌ»óÀÏ ¶§¿¡ ´Â ¾ðÁ¦µçÁö »ý¼º½ÃŲ´Ù.
±âº»ÀûÀ¸·Î, ¸®½ºÆÃÀº ÇÏÁö ¾Ê´Â´Ù. ±×°ÍµéÀ» ÃʱâÈÇÒ ¶§ (`-a' ¸í·ÉÇà ¿É¼Ç °ú °ü·ÃÇؼ´Â See section ¸í·ÉÇà.) ±× ¸®½ºÆà ī¿îÅÍÀÇ ÃʱⰪÀº 1ÀÌ´Ù.
.long expressions
.long
Àº `.int'¿Í °°´Ù. see section .int expressions
.
.macro
The commands .macro
and .endm
allow you to define macros that
generate assembly output. For example, this definition specifies a macro
sum
that puts a sequence of numbers into memory:
.macro sum from=0, to=5 .long \from .if \to-\from sum "(\from+1)",\to .endif .endm
With that definition, `SUM 0,5' is equivalent to this assembly input:
.long 0 .long 1 .long 2 .long 3 .long 4 .long 5
.macro macname
.macro macname macargs ...
.macro
statements:
.macro comm
comm
, which takes no
arguments.
.macro plus1 p, p1
.macro plus1 p p1
plus1
,
which takes two arguments; within the macro definition, write
`\p' or `\p1' to evaluate the arguments.
.macro reserve_str p1=0 p2
reserve_str
, with two
arguments. The first argument has a default value, but not the second.
After the definition is complete, you can call the macro either as
`reserve_str a,b' (with `\p1' evaluating to
a and `\p2' evaluating to b), or as `reserve_str
,b' (with `\p1' evaluating as the default, in this case
`0', and `\p2' evaluating to b).
.endm
.exitm
\@
as
maintains a counter of how many macros it has
executed in this pseudo-variable; you can copy that number to your
output with `\@', but only within a macro definition.
.nolist
.list
Áö½ÃÀÚ¿Í ´õºÒ¾î »ý¼ºµÇ´Â ¾î¼Àºí¸® ¸®½ºÆÃÀ» Á¦¾îÇÑ´Ù. ÀÌ µÎ
°³ÀÇ Áö½ÃÀÚ´Â ³»ºÎÀûÀÎ Ä«¿îÅÍ(0À¸·Î ÃʱâȵǴÂ)¸¦ °ü¸®ÇÑ´Ù.
.list
´Â Ä«¿îÆ®¸¦ Áõ °¡½ÃÅ°°í, .nolist
´Â °¨¼Ò½ÃŲ´Ù.
¾î¼Àºí¸® ¸®½ºÆÃÀº Ä«¿îÅÍ°¡ 0ÀÌ»óÀÏ ¶§¿¡´Â ¾ðÁ¦µçÁö »ý¼º½ÃŲ´Ù.
.octa bignums
ÀÌ Áö½ÃÀÚ´Â ÄÞ¸¶·Î ±¸ºÐµÇ´Â 0°³ÀÌ»óÀÇ bignums ¸¦ ±â´ëÇÑ´Ù. °¢°¢ÀÇ bignum Àº ÇϳªÀÇ 16¹ÙÀÌÆ® Á¤¼öÀÌ´Ù.
The term "octa" comes from contexts in which a "word" is two bytes; hence octa-word for 16 bytes.
.org new-lc , fill
.org
´Â ÇöÀç ¼½¼ÇÀÇ À§Ä¡ Ä«¿îÅ͸¦ new-lc ·Î ÁøÀü½Ãų
°ÍÀÌ´Ù. new-lc´Â Àý´ë Ç¥ÇöÀ̰ųª ÇöÀçÀÇ º¸Á¶¼½¼Ç¿¡¼ °°Àº ¼½¼ÇÀÇ
Ç¥ÇöÀÌ´Ù. ÀÌ ¸»Àº ¿©·¯µéÀº ¼½¼Ç À» °¡·ÎÁö¸£±â À§ÇØ .org
¸¦
»ç¿ëÇÒ ¼ö ¾ø´Ù´Â ¶æÀÌ´Ù. new-lc °¡ À߸øµÈ ¼½¼Ç À» °¡Áö°í ÀÖ´Ù¸é,
.org
Áö½ÃÀÚ´Â ¹«½ÃµÈ´Ù. ´Ù¸¥ ¾î¼Àºí·¯µé°úÀÇ È£È¯¼ºÀ» À§ÇØ ¼
new-lc ÀÇ ¼½¼ÇÀÇ Àý´ëÄ¡¶ó¸é as
´Â ±×°ÍÀ» ÇöÀç
º¸Á¶¼½¼Ç°ú new-lcÀÇ ¼½¼ÇÀ» °°´Ù°í Ãë±ÞÇÏ´Â °Íº¸´Ù´Â °æ°í¸¦ ¹ßÇàÇÒ
°ÍÀÌ´Ù.
.org
´Â À§Ä¡ Ä«¿îÅ͸¦ Áõ°¡½ÃÅ°°Å³ª ±×°ÍÀ» º¯°æ½ÃÅ°Áö ¾ÊÀ» °æ¿ì¿¡
»ç¿ëµÈ´Ù. .org
·Î À§Ä¡ Ä«¿îÅ͸¦ °Å²Ù·Î µÇµ¹¸± ¼ö´Â ¾ø´Ù.
as
´Â ÇÑ ¹ø¸¸¿¡ (one pass·Î) ÇÁ·Î±×·¥À» ¾î¼ÀºíÇÏ·Á°í Çϱâ
¶§¹®¿¡ new-lc´Â Á¤ÀÇµÉ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ Á¦ÇÑÀÌ Çø¿À½º·´´Ù¸é ¿ì¸®´Â
¿©·¯ºÐµéÀÇ Áøº¸µÈ ¾î¼Àºí·¯µéÀ» °øÀ¯ÇÒ ¼ö ÀÖ°Ô µÉ ±âȸ¸¦ °£ÀýÈ÷ ±â´Ù¸°´Ù.
À§Ä¡ Ä«¿îÅÍÀÇ ½ÃÀÛÀº º¸Á¶¼½¼ÇÀÇ ½ÃÀÛÀÌ ¾Æ´Ï¶ó ¼½¼ÇÀÇ ½ÃÀÛ°ú °ü·ÃµÇ¾î ÀÖÀ½ À» Á¶½ÉÇ϶ó. ÀÌ°ÍÀº ´Ù¸¥ »ç¶÷µéÀÇ ¾î¼Àºí·¯µé°ú ȣȯ¼ºÀ» °¡Áö±â À§ÇÑ °ÍÀÌ´Ù.
ÇöÀçÀÇ º¸Á¶¼½¼Ç¿¡¼ À§Ä¡ Ä«¿îÅÍ°¡ ÀüÁø µÉ ¶§, ±× »çÀÌÀÇ ¹ÙÀÌÆ®´Â Àý´ëÇ¥Çö ÀÎ fill ·Î ä¿öÁø´Ù. ¸¸ÀÏ ÄÞ¸¶¿Í fill ÀÌ »ý·«µÈ´Ù¸é fillÀº ±âº»À¸·Î 0ÀÌ µÈ´Ù.
.p2align[wl] abs-expr , abs-expr
Pad the location counter (in the current subsection) to a particular storage boundary. The first expression (which must be absolute) is the number of low-order zero bits the location counter must have after advancement. For example `.p2align 3' advances the location counter until it a multiple of 8. If the location counter is already a multiple of 8, no change is needed.
The second expression (also absolute) gives the value to be stored in the padding bytes. It (and the comma) may be omitted. If it is omitted, the padding bytes are zero.
The .p2alignw
and .p2alignl
directives are variants of the
.p2align
directive. The .p2alignw
directive treats the fill
pattern as a two byte word value. The .p2alignl
directives treats the
fill pattern as a four byte longword value. For example, .p2alignw
2,0x368d
will align to a multiple of 4. If it skips two bytes, they will be
filled in with the value 0x368d (the exact placement of the bytes depends upon
the endianness of the processor). If it skips 1 or 3 bytes, the fill value is
undefined.
.psize lines , columns
¸®½ºÆ®¸¦ »ý¼ºÇÒ ¶§ ÁÙ¼ö¸¦ ¼±¾ðÇϰųª ¼±ÅÃÀûÀ¸·Î ļö (°¢°¢ÀÇ ÆäÀÌÁö¿¡¼) ¸¦ ¼±¾ðÇÒ ¶§ »ç¿ëÇÑ´Ù.
.psize
¸¦ »ç¿ëÇÏÁö ¾Ê´Â ´Ù¸é ±âº»Àº 60ÁÙ·Î °è»êµÈ´Ù. ÄÞ¸¶¿Í
columns´Â »ý·« ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ°ÍÀÇ ±âº»Àº 200 ÄÀÌ´Ù.
as
generates formfeeds whenever the specified number of
lines is exceeded (or whenever you explicitly request one, using
.eject
).
lines ¸¦ 0À¸·Î ¸í½ÃÇÑ´Ù¸é, ÆûÇǵå´Â »ý¼ºµÇÁö ¾Ê´Â´Ù.
.quad bignums
.quad
´Â ÄÞ¸¶·Î ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ bignums¸¦ ±â¼úÇÑ´Ù. °¢°¢ÀÇ
bignum˼
8 ¹ÙÀÌÆ® Á¤¼öÀÌ´Ù. bignumÀÌ 8¹ÙÀÌÆ®¸¦ ¸¸Á·½ÃÅ°Áö ¸øÇÑ´Ù¸é,
"quad" ´Â 2¹ÙÀÌÆ®ÀÎ "word"¿Í °°Àº °ÍÀ¸·ÎºÎÅÍ À¯·¡µÇ¾ú´Ù. ±×·¯¹Ç·Î quad-word ´Â 8¹ÙÀÌÆ®ÀÌ´Ù.
.rept count
Repeat the sequence of lines between the .rept
directive and the next
.endr
directive count times.
For example, assembling
.rept 3 .long 0 .endr
is equivalent to assembling
.long 0 .long 0 .long 0
.sbttl "subheading"
¾î¼Àºí¸® ¸®½ºÆ®¸¦ ¸¸µé¾î ³¾ ¶§ ŸÀÌƲ(ŸÀÌƲ ¶óÀÎ ¹Ù·ÎµÚÀÇ ¼¼ ¹ø° ÁÙ)·Î subheadingÀ» »ç¿ëÇ϶ó.
ÀÌ Áö½ÃÀÚ´Â ÆäÀÌÁöÀÇ »ó´Ü 10ÁÙ ¾È¿¡ ³ªÅ¸³¯ °æ¿ì ´ÙÀ½¿¡ À̾îÁö´Â ÆäÀÌÁö¿¡ µµ ¿µÇâÀ» ¹ÌÄ£´Ù.
.scl class
½Éº¼À» À§ÇÑ ÀúÀå Ŭ·¡½º(storage-class)¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ Áö½ÃÀÚ´Â
.def
/.endef
ÀÇ ¾È¿¡¼ »ç¿ëµÈ´Ù. ÀúÀå Ŭ·¡½º´Â ½Éº¼ÀÌ
Á¤ÀûÀ̰ųª ¿ÜºÎÀûÀÏ °æ¿ì, ´õ ³ª¾Æ°¡ ±×°ÍÀÌ ½Éº¼¸¯ µð¹ö±ë Á¤µµ±îÁöµµ
Æ÷ÇÔÇÒ °æ¿ì Ç¥½ÃµÈ´Ù.
`.scl' Áö½ÃÀÚ´Â ¸ÕÀú COFF Ãâ·Â°ú ¿¬°üµÈ´Ù. b.out
Ãâ·Â
Æ÷¸ËÀ¸·Î »ý¼ºÇÏ´Â °ÍÀ¸·Î ¼³Á¤µÇ¾úÀ» °æ¿ì¿¡´Â as
´Â ÀÌ
Áö½ÃÀÚ¸¦ Çã¿ëÇϳª ¹«½ÃÇعö¸°´Ù.
.section name, subsection
COFF¿¡¼ name ¼½¼ÇÀ̶ó ºÒ¸®¿ì´Â subsectionÀÇ ³¡ºÎºÐÀ¸·Î
´ÙÀ½ÀÇ Äڵ带 ¾î¼ÀºíÇÑ´Ù. subsectionÀ» »ý·«ÇÑ´Ù¸é,
as
´Â º¸Á¶¼½¼Ç 0À¸·Î »ç¿ëÇÑ´Ù. `.section .text'´Â
.text
Áö½ÃÀÚ¿Í µ¿ÀÏÇÏ´Ù. `.section .data' ´Â .data
Áö½ÃÀÚ¿Í µ¿ÀÏ ÇÏ´Ù.
This directive is only supported for targets that actually support arbitrarily
named sections; on a.out
targets, for example, it is not accepted, even
with a standard a.out
section name as its parameter.
.set symbol, expression
ÀÌ Áö½ÃÀÚ´Â symbolÀÇ °ªÀ» expressionÀ¸·Î ¼³Á¤ÇÑ´Ù. ÀÌ°ÍÀº symbolÀÇ °ª°ú ÇüÀ» expressionÀ¸·Î µû¸£°Ô ÇÑ´Ù. ¸¸ÀÏ symbolÀÌ ¿ÜºÎÀûÀ¸·Î Ç¥½ÃµÇ¾ú´Ù¸é ±×°Í Àº Ç¥½Ã¸¸ ³²±ä´Ù. (See section ½Éº¼ÀÇ ¼Ó¼º.)
°°Àº ¾î¼Àºí¸® ¼Ò½º¿¡¼ ¿©·¯¹ø ½Éº¼À» .set
ÇÒ ¼ö ÀÖ´Ù.
Àü¿ª½Éº¼À» .set
ÇÑ´Ù¸é ¸ñÀûÆÄÀÏ¿¡ ÀúÀåµÇ´Â °ªÀº ±×°÷¿¡ ÀúÀåµÇ´Â
¸¶Áö¸· °ªÀÌ µÉ °ÍÀÌ´Ù.
The syntax for set
on the HPPA is
`symbol .set expression'.
.short expressions
.short
´Â º¸Åë `.word'¿Í °°´Ù. See section .word expressions
.
¾î¶² ¼³Á¤¿¡ À־Â, .short
¿Í .word
´Â ´Ù¸¥ ±æÀÌÀÇ
¼ýÀÚµéÀ» »ý¼ºÇÑ´Ù. see section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.single flonums
ÀÌ Áö½ÃÀÚ´Â ÄÞ¸¶·Î ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ flonums¸¦ ¾î¼ÀºíÇÑ´Ù. ÀÌ°ÍÀº
.float
¿Í °°Àº ¿µÇâÀ» ¹ÌÄ£´Ù.
Á¤È®ÇÑ ºÎµ¿¼Ò¼ýÁ¡ ¼ýÀÚÀÇ Á¾·ù´Â as
°¡ ¾î¶»°Ô ¼³Á¤µÇ
¾ú´ÂÁö¿¡ µû¸¥´Ù. See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.size
ÀÌ Áö½ÃÀÚ´Â ½Éº¼ Å×ÀÌºí¿¡ Ãß°¡ÀûÀÎ µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇϵµ·Ï ¾î¼Àºí·¯¿¡°Ô
Áö½ÃÇÑ´Ù. ÀÌ°ÍÀº .def
/.endef
ÀÇ »çÀÌ¿¡ ³ªÅ¸³ª´Â °Í¸¸ÀÌ
Çã¿ëµÈ´Ù.
`.size' ´Â ´ÜÁö COFF Æ÷¸ËÀ» Ãâ·ÂÇÒ ¶§¸¸ Àǹ̰¡ ÀÖ´Ù.
b.out
À» Ãâ·ÂÇÒ ¶§´Â Çã¿ëÀº µÇ³ª ÀÌ Áö½ÃÀÚ´Â ¹«½ÃµÈ´Ù.
.skip size , fill
This directive emits size bytes, each of value fill. Both size and fill are absolute expressions. If the comma and fill are omitted, fill is assumed to be zero. This is the same as `.space'.
.space size , fill
ÀÌ Áö½ÃÀÚ´Â size ¹ÙÀÌÆ®¸¦ fill ÀÇ °ªÀ¸·Î ä¿î´Ù. size ¿Í fill Àº µÑ´Ù Àý´ë ÀûÀΠǥÇöÀ̾î¾ß ÇÑ´Ù. ¸¸ÀÏ ÄÞ¸¶¿Í fill ÀÌ »ý·«µÇ¾ú´Ù¸é, fill Àº 0À¸·Î °¡Á¤ µÈ´Ù. This is the same as `.skip'.
°æ°í: GNU ¾î¼Àºí·¯ÀÇ °ÅÀÇ ´ëºÎºÐÀÇ ¹öÀüÀº
.space
Áö½ÃÀÚ´Â.block
Áö½ÃÀÚ¿Í °°Àº ¿µÇâÀ» ¹ÌÄ£´Ù..space
Áö½ÃÀÚ¿¡ °üÇؼ´Â HP9000 Series 800 Assembly Language Reference Manual (HP 92432-90001)¸¦ º¸¶ó. ¿ä¾àÀº See section HPPA Assembler Directives.
AMD 29K »ó¿¡¼´Â ÀÌ Áö½ÃÀÚ´Â ¹«½ÃµÈ´Ù. ´Ù¸¥ AMD29K ¾î¼Àºí·¯µé°úÀÇ È£È¯¼º Â÷¿ø¿¡¼ Çã¿ëµÈ´Ù.
Warning: In most versions of the GNU assembler, the directive
.space
has the effect of.block
See section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
.stabd, .stabn, .stabs
`.stab'·Î ½ÃÀÛÇÏ´Â ¼¼ °³ÀÇ Áö½ÃÀÚµéÀº ½Éº¼¸¯ µð¹ö°ÅÀÇ »ç¿ë¸ñÀûÀ»
À§Çؼ ½Éº¼À» ¸¸µç´Ù. (see section ½Éº¼) ÀÌ ½Éº¼µéÀº as
ÀÇ
Çؽ¬ Å×ÀÌºí¿¡´Â µé¾î°¡Áö ¾Ê´Â´Ù. ±×µéÀº ¼Ò½ºÆÄÀÏÀÌ ¾Æ´Ñ ´Ù¸¥
¾î´À°÷¿¡¼´Â ÂüÁ¶µÇÁö ¾Ê´Â´Ù. 5°³ÀÇ Çʵå ÀÌ»óÀÌ ¿ä±¸µÈ´Ù.
ld
¿Í µð¹ö°ÅµéÀº ¸ÛûÇÑ(silly) ºñÆ® ÆäÅÏÀº
¸·À» °ÍÀÌ´Ù.
¸¸ÀÏ .stabd
, .stabn
, .stabs
±¸¹®À» Àд µ¿¾È °æ°í°¡
¹ß»ýÇϸé, ½Éº¼Àº ¾Æ ¸¶µµ ÀÌ¹Ì ¸¸µé¾î Á³À» °ÍÀÌ°í ¸ñÀûÆÄÀÏ¿¡ ¹ÝÂë Çü¼ºµÈ
½Éº¼À» ¾òÀ» °ÍÀÌ´Ù. ÀÌ °ÍÀº ÀÌÀüÀÇ ¾î¼Àºí·¯µé°úÀÇ È£È¯¼ºÀ» À§ÇÑ °ÍÀÌ´Ù.
.stabd type , other , desc
.stdbd
°¡ ¾î¼Àºí µÉ ¶§ÀÇ À§Ä¡ Ä«¿îÅÍ°¡ ÀÖ´Â °÷ÀÌ´Ù.
.stabn type , other , desc , value
""
·Î ¼¼Æ®µÈ´Ù.
.stabs string , type , other , desc , value
.string
"str"Copy the characters in str to the object file. You may specify more than one string to copy, separated by commas. Unless otherwise specified for a particular machine, the assembler marks the end of each string with a 0 byte. You can use any of the escape sequences described in section ¹®ÀÚ¿.
.tag structname
ÀÌ Áö½ÃÀÚ´Â ½Éº¼Å×ÀÌºí¿¡ Ãß°¡ÀûÀÎ µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇϵµ·Ï
ÄÄÆÄÀÏ·¯¿¡°Ô Áö½ÃÇÑ´Ù. .def
/.endef
ÀÇ ¾È¿¡¼¸¸ Çã¿ëµÈ´Ù.
ű״ ½Éº¼ Å×À̺íÀÇ ±¸Á¶ Á¤ÀÇ µéÀ» ¸µÅ©ÇÏ´Â µ¥ »ç¿ëµÈ´Ù.
`.tag' ´Â ´ÜÁö COFF Ãâ·Â Æ÷¸ËÀ» »ý¼ºÇÒ ¶§¿¡¸¸ »ç¿ëµÈ´Ù.
as
°¡ b.out
À» »ý¼ºÇÒ ¶§¿¡´Â ±×°ÍÀº Çã¿ëµÇ³ª
¹«½ÃµÈ´Ù.
.text subsection
¾î¼Àºí·¯¿¡°Ô ´ÙÀ½ÀÇ ±¸¹®À» subsectionÀ¸·Î ¹øÈ£ºÙ¿©Áø text ¼½¼ÇÀÇ ³¡À¸·Î ¾î¼Àºí Çϵµ·Ï Áö½ÃÇÑ´Ù. ÀÌ°ÍÀº Àý´ëÀûÀΠǥÇöÀ̸ç subsection ÀÌ »ý·«µÈ´Ù¸é, ¼½¼Ç ¼ýÀÚ 0ÀÌ »ç¿ëµÈ´Ù.
.title "heading"
¾î¼Àºí¸® ¸®½ºÆ®¸¦ »ý¼ºÇÒ ¶§ Á¦¸ñ(¼Ò½ºÆÄÀÏÀÇ À̸§°ú ÆäÀÌÁö ¼ýÀÚ ¹Ù·Î µÚÀÇ 2¹ø ° ÁÙ)À¸·Î headingÀ» »ç¿ëÇÑ´Ù.
ÀÌ Áö½ÃÀÚ´Â ´ÙÀ½¿¡ °è¼ÓµÇ´Â(subsequent) ÆäÀÌÁö¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù. ÀÌ°ÍÀÌ ÆäÀÌ ÁöÀÇ »ó´Ü 10Áپȿ¡ ³ªÅ¸³µ´Ù¸é ÇöÀç ÆäÀÌÁö¸¸Å..
.type int
ÀÌ Áö½ÃÀÚ´Â .def
/.endef
¾È¿¡¼¸¸ Çã¿ëµÇ¸ç ½Éº¼ Å×À̺í
¿£Æ®¸®ÀÇ Çü ¼Ó¼ºÀ¸·Î Á¤¼ö int¸¦ ±â·ÏÇÑ´Ù.
`.type'Àº COFF Æ÷¸Ë Ãâ·Â¿¡¸¸ ¿¬°üµÇ°í, b.out
Ãâ·ÂÀÏ ¶§¿¡´Â
ÀÌ°ÍÀº ¹Þ¾Æ´Â µé¿©Áö³ª °ðÀÌ¾î ¹«½ÃµÈ´Ù.
.val addr
ÀÌ Áö½ÃÀÚ´Â .def
/.endef
¾È¿¡¼¸¸ Çã¿ëµÇ¸ç ½Éº¼ Å×À̺í
¿£Æ®¸®ÀÇ °ª ¼Ó¼ºÀ» ÁÖ¼Ò addr
·Î ±â·ÏÇÑ´Ù.
`.val'Àº COFF Ãâ·Â À϶§¿¡¸¸ »ç¿ëµÇ°í, b.out
À» Ãâ·Â ÇÒ ¶§¿¡´Â
ÀÌ Áö½ÃÀÚ´Â Çã¿ëµÇ³ª ¹«½ÃµÈ´Ù.
.word expressions
ÀÌ Áö½ÃÀÚ´Â ÄÞ¸¶¿¡ ÀÇÇØ ±¸ºÐµÇ´Â 0°³ ÀÌ»óÀÇ ¾î¶°ÇÑ ¼½¼Ç¿¡¼ÀÇ expressions À» ±â´ëÇÑ´Ù.
¼ýÀÚÀÇ Å©±â´Â ä¿öÁö°í,±×°ÍÀÇ ¹ÙÀÌÆ® ¼ø¼´Â ¾î¶² ÄÄÇ»ÅÍ°¡ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í ÀÖ´Â °¡¿¡ µû¶ó ´Ù¸£´Ù.
Warning: Special Treatment to support Compilers
32ºñÆ® ÁÖ¼Ò °ø°£ÀÇ ±â°è°¡ 32ºñÆ® ÁÖ¼ÒÁöÁ¤º¸´Ù ÀûÀ» °æ¿ì, ´ÙÀ½¿¡ µû¶ó¿À´Â Ưº° ÇÑ ´ë¿ì¸¦ ¿ä±¸ÇÑ´Ù. ´ç½Å¿¡°Ô Èï¹Ì·Î¿î ±â°è°¡ 32ºñÆ® ÁÖ¼ÒÁöÁ¤À» ÇÑ´Ù¸é (¶Ç´Â ±×°ÍÀ» ¿ä±¸ÇÏÁö ¾Ê´Â´Ù¸é), À̹ø ¹®Á¦´Â ¹«½ÃÇصµ ±¦Âú´Ù. see section ±â°è¿¡ ÀÇÁ¸ÇÏ´Â °Íµé.
¾î¼ÀºíÀ» ÇÒ ¶§ÀÇ ¼ø¼¿¡ ÀÖ¾î¼ ÄÄÆÄÀÏ·¯´Â ÀÛ¾÷ÇÒ ¾î¶² °Í¼ÓÀ¸·Î Ãâ·ÂÇÏ°í,
as
´Â Ưº°ÇÏ°Ô ÀÌ»óÇÑ °ÍÀº `.word' Áö½ÃÀÚ·Î
ÀÛ¾÷ÇÑ´Ù. Áö½ÃÀÚÀÇ ÇüÅ `.word sym1-sym2' ´Â Á¾Á¾ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ
Á¡ÇÁ Å×À̺íÀÇ ÀϺκÐÀ¸·Î ¹ß»ýÇÑ´Ù. ±×·¯ ¹Ç·Î, as
°¡
`.word sym1-sym2'ÀÇ Áö½ÃÀÚ ÇüŸ¦ ¾î¼Àºí ÇÒ ¶§¿¡, sym1
°ú
sym2
ÀÇ Â÷ÀÌÁ¡Àº 16ºñÆ®·Î ä¿öÁöÁö ¾Ê´Â´Ù. as
´Â
´ÙÀ½ ¶óº§ ÀÌÀü¿¡ Áï°¢ÀûÀ¸·Î Á¦ 2ÀÇ Á¡ÇÁ Å×À̺íÀ» ¸¸µé °ÍÀÌ´Ù.
Á¦2ÀÇ Á¡ÇÁ Å×À̺íÀº Á¦2ÀÇ Å×ÀÌºí ´ÙÀ½ÀÇ Ã¹ ¹ÙÀÌÆ®·ÎÀÇ short-jump ¿¡ ÀÇÇØ
¾ÕÁú·¯ Áø´Ù. ÀÌ short-jump ´Â »õ·Î¿î Å×À̺í¼Ó À¸·Î ¿ì¿¬È÷ ¶³¾îÁö´Â
°ÍÀ¸·Î ºÎÅÍ È帧ÀÇ Á¦¾î¸¦ ¹æÇØÇÑ´Ù. Å×À̺íÀÇ ¾ÈÂÊÀº sym2 ·ÎÀÇ
long-jump°¡ µÉ °ÍÀÌ´Ù. ¿ø·¡ÀÇ `.word'´Â sym1
-
(sym2
·ÎÀÇ long-jumpÀÇ ÁÖ¼Ò) ÀÇ °è»ê°ªÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù.
¸¸ÀÏ ¿©·¯¹øÀÇ `.word sym1-sym2'°¡ Á¦2ÀÇ Á¡ÇÁ Å×À̺íÀÌÀü¿¡
³ªÅ¸³´Ù¸é, ±×°Í µéÀÇ ¸ðµÎ´Â Á¶ÀýµÉ °ÍÀÌ´Ù. ¸¸ÀÏ `.word
sym3-sym4'¿Í °°Àº °ÍÀÌ ÀÖÀ¸¸é, À̰͵µ ¿ª½Ã 16ºñÆ®¿¡¼ ¸¸Á·½ÃÅ°Áö ¸øÇÑ´Ù.
sym4
·ÎÀÇ long-jump ´Â Á¦2ÀÇ Á¡ÇÁ Å×ÀÌºí¿¡ ¼ Æ÷Ç﵃ °ÍÀÌ°í,
.word
Áö½ÃÀÚ´Â sym3
- (sym4
·ÎÀÇ long-jump ÁÖ¼Ò)ÀÇ
°ªÀ» Æ÷ÇÔÇϵµ·Ï Á¶ÀýµÉ °ÍÀÌ´Ù. ±×¸®°í ÇÊ¿äÇÑ ¸¸ÅÀÇ ¿ø·¡ÀÇ Á¡ÇÁ
Å×ÀÌºí¿¡¼ ¿©·¯°³ ÀÇ ¿£Æ®¸® ¸¸Å °è¼ÓµÉ °ÍÀÌ´Ù.
¾ðÁ¨°¡´Â ÀÌ·¯ÇÑ Áö½ÃÀÚµéÀº Á¦°øµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. À̰͵éÀº ¿À·¡µÈ ¾î¼Àºí·¯ µé°úÀÇ È£È¯¼º À¯ÁöÂ÷¿ø¿¡¼ Á¦°øµÈ´Ù.
Go to the first, previous, next, last section, table of contents.