어셈블리어 명령어 모듬2 기본(펌)


* RET, RETN: 호출한 지점으로 돌아간다.
return

 

* MOV: 메모리나 레지스터 등의 값을 옮길 때 쓰인다.
move

mov eax,ebx ; ebx의 값을 eax로 옮긴다.
mov eax,20 ; 20을 eax에 옮긴다.
mov eax,dword ptr [40203F] ;메모리 주소 40203F의 값을 eax에 옮긴다.

 

 

 

* PUSH: SP 레지스터를 조작하는 명령어 중의 하나로 스택에 데이터를 저장한다.
push

 


push eax ; eax 레지스터의 값을 스택에 집어 넣는다.
push 20 ; 20을 스택에 집어 넣는다.
push 40203F ; 40203F 값을 그대로 스택에 넣는 다



* POP: 역시 SP 레지스터를 조작하는 명령어로 스택의 데이터를 꺼낸다.
pop

pop eax ; 맨 마지막에 스택에 집어넣은 값을 꺼내 eax 레지스터에 저장.




* LEA: 대상 오퍼랜드의 값을 소스 오퍼랜드의 값으로 만든다.
load effective address

lea eax,ebx ; eax의 값을 ebx의 값으로 만든다.


* INC: 레지스터의 값을 1 증가 시킨다.
increase

inc eax ; eax의 값을 1 증가 시킨다.


* DEC: 레지스터의 값을 1 감소 시킨다.
decrease

dec eax ; eax의 값을 1 감소 시킨다.


* ADD: 레지스터의 값이나 메모리의 값을 더할 때 쓰인다.
add

add eax,ebx ; eax = eax + ebx
add eax,20 ; eax = eax + 20
add eax,dword ptr [40203F] ; eax = eax + 40203F의 값


* SUB: 레지스터의 값이나 메모리의 값을 뺄 때 쓰인다.
subtract

sub eax,ebx ; eax = eax - ebx
sub eax,20 ; eax = eax - 20
sub eax,dword ptr [40203F] ; eax = eax - 40203F의 값


* NOP: 아무 것도 하지 않는다.
no operation


* CALL: 프로시져(procedure)를 호출할 때 쓰인다.
call

call dword ptr [40203F] ; 메모리 주소 40203F을 호출한다.




* CMP: 레지스터 끼리 혹은 레지스터와 값을 비교한다.
compare

cmp eax,ebx ; eax와 ebx를 비교한다.
cmp eax,20 ; eax와 20을 비교한다.
cmp eax,dword ptr [40203F] ; eax와 메모리 40203F의 값을 비교한다.


* JMP: 특정 위치로 무조건 점프한다.
unconditional jump

jmp dword ptr [40203F] ; 메모리 40203F 위치에 적힌 4바이트 값(dword) 이 지정한 위치로 점프 .


조건부 점프: CMP나 TEST와 같은 연산 결과에 따라 점프를 결정

* JE: CMP나 TEST 의 결과가 같다면 점프
jump if equal

* JNE: CMP나 TEST 의 결과가 같지 않다면 점프
jump if not equal

* JZ: 왼쪽 인자의 값이 0 이라면 점프
jump if zero

* JNZ: 왼쪽 인자의 값이 0 이 아니라면 점프
jump if not zero

* JL: 왼쪽 인자의 값이 오른쪽 인자의 값보다 작으면 점프
jump if less; signed

* JNL: 왼쪽 인자의 값이 오른쪽 인자의 값보다 작지 않으면 (크거나 같으면) 점프
jump if not less; signed

* JB: 왼쪽 인자의 값이 오른쪽 인자의 값보다 작으면 점프
jump if below; unsigned

* JNB: 왼쪽 인자의 값이 오른쪽 인자의 값보다 작지 않으면 (크거나 같으면) 점프
jump if not below; unsigned

* JG: 왼쪽 인자의 값이 오른쪽 인자의 값보다 크면 점프
jump if greater

* JNG: 왼쪽 인자의 값이 오른쪽 인자의 값보다 크지 않으면 (작거나 같으면) 점프
jump if not greater

* JLE: 왼쪽 인자의 값이 오른쪽 인자의 값보다 작거나 같으면 점프
jump if less or equal; signed

* JGE: 왼쪽 인자의 값이 오른쪽 인자의 값보다 크거나 같으면 점프
jump if greater or equal

 

 

출처:게임도리 - 어셈블리 중요명령어 모음 초급자용 http://gdori.xyz/?mid=prob&document_srl=27682

댓글

Designed by JB FACTORY