Posts Tagged ‘MASM’
-
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!