https://learn.dreamhack.io/37#4
명령어
| 기능 | 명령어 |
|---|---|
| 데이터 이동(Data Transfer) | mov, lea |
| 산술 연산(Arithmetic) | inc, dec, add, sub |
| 논리 연산(Logical) | and, or, xor, not |
| 비교(Comparison) | cmp, test |
| 분기(Branch) | jmp, je, jg |
| 스택(Stack) | push, pop |
| 프로시져(Procedure) | call, ret, leave |
| 시스템 콜(System call) | syscall |
피연산자
메모리 피연산자는 “[ ]”으로 둘러싸여 표현하며, 앞에 크기 지정자(Size Directive)인 TYPE PTR이 올 수 있다. 이 TYPE의 위치에는 BYTE, WORD, DWORD, QWORD가 올 수 있고, 각각 1바이트, 2바이트, 4바이트, 8바이트의 크기를 지정한다.
| QWORD PTR [0x8048000] | 0x8048000의 데이터를 8바이트만큼 참조 |
| DWORD PTR [0x8048000] | 0x8048000의 데이터를 4바이트만큼 참조 |
| WORD PTR [rax] | rax가 가르키는 주소에서 데이터를 2바이트 만큼 참조 |