Tuuna Computer Science

[Assembly] 어셈블리어 명령어3 본문

Assembly

[Assembly] 어셈블리어 명령어3

GuTTe 2018. 4. 23. 12:12
DB(data byte) 00을 나타낼때

점프기능 JMP점프 기능  JMP 401000 특정한 구간으로
점프!   EIP : 실행할 곳의 주소를 담고 있는 레지스터
즉, JMP 401000은 EIP에 그 메모리주소가 들어가도록 하는거다.

EIP는 범용레지스터가 아님(일반적인 용도로 ㄴㄴ) (MOV사용ㄴㄴ)
JMP SHORT 401000에서 이동할 위치가 가까우면
SHORT F9는 거리

또한 jmp eax등 레지스터 점프도 가능

증가 연산자 INC [공간]
감소 연산자 DEC [공간]

메모리에 대해서는 사이즈 필요
INC WORD PTR [공간주소]

한바이트로 표현할 수 없는 부분은 long(생략)으로 나타난다.


예를들어 401000이라는 주소가 있는데 이곳에 위치하는
기계어를 읽어들이겠다. 그리고 램으로 넘어가서 실행
램에서 기계어 데이터를 읽는다.


CMP 함수
(세트와 언세트)

CMP V1, V2   SF랑 OF(이해하기)

V1 = V2 = 0   -> ZF플래그 세트(1) CF플래그 언세트(0)
V1 > V2         -> ZF는 언세트(0)되고 CF도 언세트(0)된다.
V1 < V2         -> ZF는 언세트(0)되고 CF는 세트(1)된다.

값을 비교하고   이에 따라 프래그가 세트된다.
==========================================부호 없는
JA  ( > ) CF = 0 and ZF = 0  
JAE ( >= ) CF = 0 OR ZF = 0  (E가 반대 특히 >의 반대는 <=이다)

JB ( < ) CF = 1

JBE ( <=) CF =1 OR ZF =1(ZF가 1이냐 같다는 표현이 있기때문)
============================================반반
JE ( == ) ZF =1

JZ ( == ) ZF =1 //JE와 동일(반반)
==========================================부호 있는
JC    CF =1

JG ( > ) ZF =0 AND SF == 0F

JCXZ    CX=0

JECXZ   ECX = 0


JNZ     ZF가 언세트  (JZ의 반대)    
Comments