본문 바로가기

REAL Code

Intel Instruction Format

반응형

 


 기계어를 어셈블리 코드로 변환하기 위해서는 위의 명령어 포맷을 알아야 한다. 특정한 명령어에 사용되는 Prefix, 명령어를 나타내는 Opcode 그리고 프로세서가 취급할 정보가 위치하는 메모리 번지 또는 레지스터를 지정하기위해서 번지 지정 방식(Addressing mode)에 대해 분석해야한다.

 

Ÿ Prefix
 명령어 쓰임에 따라서 존재하거나 존재하지 않는다. 존재할 경우에는 4가지 Group의 경우로 분류 된다.

 

Ÿ REX Prefix

확장 레지스터 접급을 위한 Prefix

- GPRs and SSE 레지스터를 명시

- 64bit operand 크기를 명시

- 확장 Control 레지스터 명시

 

Ÿ Opcode
 Opcode는 마이크로프로세서가 수행해야 할 일들의 종류, 즉 명령어들을 나타낸다. 따라서 Opcode를 보고 해당 명령어들을 파악한다.

 

Ÿ ModR/M

  오퍼랜드가 레지스터에 있는지 메모리에 있는지를 나타낸다. Mod, Reg/Opcode, r/m으로 구성되어 있다. 아래 표는 ModR/M 값의 의미를 표시

 

 




 

      SIB

ModeR/M 필드에 의해 간접 어드레서 형태로 주소가 지정되어 있을 때 베이스 어드레스나 스케일 인덱스와 같은 추가적인 어드레서 지정 형식을 구성하고 할 때 사용되며 SS, Idex, Base 세 가지 필드로 구성. 위의 ModeR/M 필드와 같이  SIB 필드를 표로 제공함

반응형
이웃추가