 
 
 
 
 
 
 
  
°¡Àå °£´ÜÈ÷ 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