명령어 해석
.386 는 80x86 cpu 의 명령어 뿐만 아니라 다른 상위버전 명령어도 받을수 있도록 해준다.
.MODEL FLAT : flat 메모리 방식을 사용한다고 알려준다.
ExitProcess 함수를 정의 한다. (ExitProcess 는 시스템에 저장되어 있는함수이다.)
PROTO 명령어는 c 언어에서 함수 선언 부분이라고 알려주는 부분이다.
PROTO 명령어로 함수의 틀을 먼저 정해 놓으면 ExitProcess 함수를 나중에 구현하더라도 코드에서 에러가 발생하지 않는다.
EQU 명령어는 상수값을 정하는 것과 같다 .cr 은 0x0d 를 의미하고
lf 0x0a 를 의미한다.
_start: 엔트리 포인트를 정한다.
INVOKE ExitProcess , 0 : ExitProcess 함수를 부른다 0을 인자로 준다.
ExitProcess 는 c 언어의 exit() 함수랑 동일하다.
PUBLIC _start ; c 언어의 {} 와 같다.위의 _start 와 합처서 엔트리 포인터를 만들어 준다.
나머지 코드는 아래 블로그에서
설명 자세히 나와있음
stack 구조, 어셈블리 (MASM, 코드 분석)
test(4,3); ⇒ push 3 push 4 call test(→push eip, → call test) printf test main stack ebp(old ebp) 함수 호출 시 반드시 필요한 영역(overhead) ret 4 3 main ← esp: main B A stack ebp RET(..
donghwada.tistory.com
'공부,일 > 어셈블리' 카테고리의 다른 글
masm32 기본 다지기 튜토듀얼 블로그 (0) | 2021.08.13 |
---|---|
visual studio 에서 masm32( 어셈블러) 사용하기 (0) | 2021.08.13 |
ch3 assembly language statements (0) | 2021.08.12 |
ch3 . element of assembly language (0) | 2021.08.12 |
80x86 cpu register (0) | 2021.08.12 |
댓글