난 정말 최고야 멋있어
MASM 기본 문법 본문
PROTO : 함수의 프로토타입 선언
HelloWorld PROTO :DWORD, DWORD
; 파라미터로 DWORD 형 변수 두개를 받는 HelloWorld라는 함수의 프로토타입을 선언
MACRO ~ ENDM : 매크로 정의
매크로 이름 MACRO 인자
;할 일!!
ENDM
.DATA : 데이터 세그먼트 표시
.DATA? : BSS 세그먼트 표시 (초기화 X && 0으로 초기화)
데이터 세그먼트의 값을 할당할때는
[변수이름] [변수타입(dd,db..etc) ] [ 값 ]
ex)
simpleAddr dd 00400000h
simpleString db "안녕하세요",0 ;"안녕하세요\0"
simpleBssData dd ?
.CODE : 코드 세그먼트 표시
함수이름 PROC ~ ENDP : 함수의 정의
HelloWorld PROC uses 변수이름1, 변수이름2
xor rax,rax
ret
ENDP
LOCAL : 지역 변수 선언
LOCAL Hello:DWORD
@@: , @B, @F :
@@:
jmp @F ;다음 @@로 점프
jmp @B ;이전 @@로 점프
@@:
.IF , .ELSE , .ELSEIF , ENDIF : 조건문
점프문이랑 cmp 안섞어가면서 조건문 이용 할 수 있게 해준다!
.IF eax==0
;할 일
.ELSEIF ebx==0
;또 다른 할 일
.ELSE
;또 또 다른 일
.ENDIF
TBD