°¡Àå °£´ÜÈ÷ Assembly ¾ð¾î¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ C¾ð¾î¿¡¼ Assembly ¾ð¾î¸¦ ÃßÃâÇØ ³»´Â ¹æ¹ýÀÌ´Ù.
´ÙÀ½Àº hello.c ÀÌ´Ù.
#include <stdio.h>
void main()
{
printf("Hello World\n");
}
´ÙÀ½Àº C ¼Ò½º¿¡¼ Assembler ¼Ò½º¸¦ ¾ò´Â ¹æ¹ýÀÌ´Ù.
% gcc -S hello.c
´ÙÀ½Àº ÀÌ·¸°Ô ÇØ¼ ¾ò´Â Assembler ¼Ò½ºÀÌ´Ù.
.file 1 "hello.c"
.version "01.01"
.set noat
gcc2_compiled.:
__gnu_compiled_c:
.section .rodata
.align 3
$C32:
.ascii "Hello World\12\0"
.text
.align 3
.globl main
.ent main
main:
ldgp $29,0($27)
main..ng:
lda $30,-16($30)
.frame $15,16,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-16
bis $30,$30,$15
.prologue 1
lda $16,$C32
jsr $26,printf
ldgp $29,0($26)
$33:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,16,$30
ret $31,($26),1
.end main
.ident "GCC: (GNU) 2.7.2.1"
±×·¯¸é hello.s¶ó´Â assembly ÆÄÀÏÀÌ ¸¸µé¾î Áö´Âµ¥, À̰ÍÀ» GNU AssemblerÀÎ as·Î Object ÆÄÀÏÀ» ¸¸µç´Ù.
% as -o hello.obj hello.s
ÀÌÁ¦ Loader(ld)·Î ¶óÀ̺귯¸®¸¦ ÇÕÃÄ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¸é µÈ´Ù. À̶§ gcc·Î ÄÄÆÄÀÏÇØÁÖ¸é ÀÚµ¿À¸·Î ¸ðµç°ÍÀ» ¾Ë¾Æ¼ ÇØÁØ´Ù.
% gcc -o hello hello.o
Assembly ÄÚµå ÀÛ¼º
°¡Àå °£´ÜÈ÷ Assembly ¾ð¾î¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ C¾ð¾î¿¡¼ Assembly ¾ð¾î¸¦ ÃßÃâÇØ ³»´Â ¹æ¹ýÀÌ´Ù.
´ÙÀ½Àº hello.c ÀÌ´Ù.
#include <stdio.h>
void main()
{
printf("Hello World\n");
}
´ÙÀ½Àº C ¼Ò½º¿¡¼ Assembler ¼Ò½º¸¦ ¾ò´Â ¹æ¹ýÀÌ´Ù.
% gcc -S hello.c
´ÙÀ½Àº ÀÌ·¸°Ô ÇØ¼ ¾ò´Â Assembler ¼Ò½ºÀÌ´Ù.
.file 1 "hello.c"
.version "01.01"
.set noat
gcc2_compiled.:
__gnu_compiled_c:
.section .rodata
.align 3
$C32:
.ascii "Hello World\12\0"
.text
.align 3
.globl main
.ent main
main:
ldgp $29,0($27)
main..ng:
lda $30,-16($30)
.frame $15,16,$26,0
stq $26,0($30)
stq $15,8($30)
.mask 0x4008000,-16
bis $30,$30,$15
.prologue 1
lda $16,$C32
jsr $26,printf
ldgp $29,0($26)
$33:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,16,$30
ret $31,($26),1
.end main
.ident "GCC: (GNU) 2.7.2.1"
GAS·Î ÄÄÆÄÀÏ Çϱâ
±×·¯¸é hello.s¶ó´Â assembly ÆÄÀÏÀÌ ¸¸µé¾î Áö´Âµ¥, À̰ÍÀ» GNU AssemblerÀÎ as·Î Object ÆÄÀÏÀ» ¸¸µç´Ù.
% as -o hello.obj hello.s
½ÇÇà ÆÄÀÏ ¸¸µé±â
ÀÌÁ¦ Loader(ld)·Î ¶óÀ̺귯¸®¸¦ ÇÕÃÄ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¸é µÈ´Ù. À̶§ gcc·Î ÄÄÆÄÀÏÇØÁÖ¸é ÀÚµ¿À¸·Î ¸ðµç°ÍÀ» ¾Ë¾Æ¼ ÇØÁØ´Ù.
% gcc -o hello hello.o