Archive for 1月 3rd, 2012

  1. Hello, NASM World!

    Posted on 1月 3rd, 2012 by cx20

    NASM

    NASM はフリーのアセンブリ言語である。名前の由来は Netwide Assembler より。
    構文の特徴としては AT&T 記法ではなく Intel 記法が使われているという特徴がある。

    ソースコード(64bit版)

    section .text
            global _main
            extern _puts
     
    _main:
            push    rbp
            mov     rbp, rsp
            push    rbx
            mov     rbx, rsp
            and     spl, 0xF0
            mov     rdi, msg
            call    _puts
            mov     rsp, rbx
            pop     rbx
            mov     rsp, rbp
            pop     rbp
            ret
     
    section .data
    msg     db      "Hello, NASM World!", 0

    コンパイル&リンク方法

    $ nasm -f macho64 hello.asm
    $ gcc -o hello hello.o

    実行結果

    Hello, NASM World!