일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Numpy
- adjacentElementsProduct
- cpp
- Sequential Search
- 파이썬 포렌식
- 수 정렬하기
- 백준
- recursion
- Counting cells in a blob
- data_structure
- matrixElementsSum
- 피보나치 수
- Python
- codesingal
- shapeArea
- All Longest Strings
- codesignal
- 파이썬머신러닝완벽가이드
- collections.deque
- 2015 봄학기 알고리즘
- almostIncreasingSequence
- 2750
- markdown
- C++
- til
- flask
- centuryFromYear
- baekjun
- 10953
- Daily Commit
Archives
- Today
- Total
Introfor
Assembly Language 본문
Assembly Instruction
Data Type
BYTE : 8bit
WORD : 16bit
DWORD : 32bit
Operand Type
r8 : 8bit 범용 레지스터
r16 : 16bit 범용 레지스터
r32 : 32bit 범용 레지스터
Reg : 임의의 범용 레지스터
imm8 : 8bit 즉시값
imm16 : 16bit 즉시값
imm32 : 32bit 즉시값
INC(Increase)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main() { int a = 0; printf("%d\n", a); _asm { INC a // INC는 operand의 값에 +1만큼 증가시킨다. inc a } printf("%d\n", a); return 0; } | cs |
DEC(Decrease)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main() { int a = 0; printf("%d\n", a); _asm { DEC a // DEC는 operand의 값에 -1만큼 시킨다. dec a } printf("%d\n", a); return 0; } | cs |
ADD
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { int a = 0; printf("%d\n", a); _asm { ADD a, 123 // ADD는 a에 123을 더해서 a에 저장한다. } printf("%d\n", a); return 0; } |
SUB(Subtract)
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main() { int a = 0; printf("%d\n", a); _asm { SUB a, 123 // SUB는 a에 123을 빼서 a에 저장한다. } printf("%d\n", a); return 0; } | cs |
MOV(Move)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main() { int a = 0; printf("%d\n", a); _asm { MOV a, 0x10 // MOV는 0x10의 값을 a에 복사한다. // mov reg, reg는 가능하지만 mov reg, mem은 불가능. } printf("%d\n", a); return 0; } | cs |
INT(Interrupt)
1 2 3 4 5 6 7 8 | #include <stdio.h> int main() { _asm { INT 3 // 소프트웨어 인터럽트를 발생시켜 운영체제의 서브루틴을 호출. INT imm // imm은 8,16,32bit 즉시값. } return 0; } | cs |
'Doing > Reversing' 카테고리의 다른 글
Crackme 1_abexcm1 (0) | 2016.09.20 |
---|---|
PE(Portable Executable) File Format (0) | 2016.08.12 |
[Tool] Sothink SWF Decompiler (0) | 2016.07.08 |
Comments