Hello, MASM World!

Posted on 1月 4th, 2012 by cx20

MASM

MASM はマイクロソフト社製のアセンブリ言語である。正式名称は Microsoft Macro Assembler。Visual C++ に付属している。

ソースコード(32bit版)

.MODEL flat
EXTRN   _printf:PROC
 
_DATA   SEGMENT
msg     DB      'Hello, MASM World!', 0aH, 00H
_DATA   ENDS
 
_TEXT   SEGMENT
_main   PROC
        push    OFFSET msg
        call    _printf
        add     esp, 4
        xor     eax, eax
        ret     0
_main   ENDP
_TEXT   ENDS
END

ソースコード(64bit版)

EXTRN   printf:PROC
 
_DATA   SEGMENT
msg     DB      'Hello, MASM World!', 0aH, 00H
_DATA   ENDS
 
_TEXT   SEGMENT
main    PROC
        sub     rsp, 40
        lea     rcx, OFFSET msg
        call    printf
        xor     rax, rax
        add     rsp, 40
        ret     0
main    ENDP
_TEXT   ENDS
END

上記コードは以下のC言語のソースを VC++ でアセンブリコード出力(cl /FA hello.c)したものに相当する。

#include <stdio.h>
 
int main( int argc, char* argv[] )
{
    printf( "Hello, MASM World!n" );
    return 0;
}

コンパイル&リンク方法(MASM 32bit版)

C:¥> ml -c hello.asm
C:¥> link hello.obj libcmt.lib

コンパイル&リンク方法(MASM 64bit版)

C:¥> ml64 -c hello64.asm
C:¥> link hello64.obj libcmt.lib

実行結果

Hello, MASM World!

Tags:

Categories: assembler, MASM

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing