⭐ Programming/Assembly Language
[Assembly Language] Register Basic
[Assembly Language] Register Basic
2022.05.23Register 범용 레지스터 종류(32-bit) 이름 명칭 기능 EAX Accumulate. 누산기 변수의 주소값을 rax에 복사. 함수의 return값 저장. 곱셈, 나눗셈 연산 자동 사용 EBX Base. 베이스 레지스터 주소 지정 ECX Count. 숫자 카운팅 자동 루프 카운팅 EDX Data. 데이터 레지스터 간접 주소 지정 EBP Base Pointer. 베이스 포인터. 스택의 데이터 접근 ESP Stack Pointer. 스택 포인터. 스택의 위치 저장 ESI Source Index. 읽기 인덱스. 문자열 비교/전송 EDI Destination. 쓰기 인덱스. 쓰기 EIP Instruction Pointer. 명령어 포인터 레지스터. 다음 명령어의 주소 EFLAGS 1 2 3 4 5 6 7..
[Assembly Language] Data Basic
[Assembly Language] Data Basic
2022.05.23이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[Assembly Language] Stack Memory 스택 메모리
[Assembly Language] Stack Memory 스택 메모리
2022.03.19Memory Structure 메모리의 구조 http://www.tcpschool.com/c/c_memory_structure 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/ [컴퓨터 기초] 메모리구조(Memory Structure) - jinShine 프로그램 실행 순서 메모리 영역에 관해 이야기하기 전에 어떤식으로 프러그램이 실행되는지 과정을 살펴 보겠습니다. 프로그램의 정보를 ..
[Assembly Language] 함수 기초
[Assembly Language] 함수 기초
2022.03.19함수기초 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869%include "io64.inc" section .textglobal CMAINCMAIN: mov rbp, rsp; for correct debugging ; 함수 (프로시저 procedure 서브루틴 subroutine) ; call PRINT_MSG mov eax, 10 mov ebx, 15 call MAX PRINT_DEC 4, ecx NEWLINE xor rax, rax ret PRINT_MSG: PRINT_STRING msg NEWLINE ret ; ex) ..
[Assembly Language] 배열과 주소
[Assembly Language] 배열과 주소
2022.03.181 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 %include "io64.inc" section .text global CMAIN CMAIN: mov rbp, rsp; for correct debugging ; 배열과 주소 ; 배열 : 동일한 타입의 데이터 묶음 ; - 배열을 구성하는 각 값을 배열 요소(element)라고 함 ; - 배열의 위치를 가리키는 숫자를 인덱스(index)라고 함 ; 주소 ; [시작 주소 + 인덱스 * 크기] mov rax, a..
[Assembly Language] 분기문, IA-32 Register
[Assembly Language] 분기문, IA-32 Register
2022.03.18분기문 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 %include "io64.inc" section .text global CMAIN CMAIN: mov rbp, rsp; for correct debugging ; 분기문 (if) ; 특정 조건에 따라서 코드 흐름을 제어하는 것 ; ex) 스킬 버튼 눌렀는가> YE..
[Assembly Language] Shift Operation & Logical Operation 시프트 연산과 논리 연산
[Assembly Language] Shift Operation & Logical Operation 시프트 연산과 논리 연산
2022.03.17비트 연산 입력된 두 값을 비트 단위로 나열한 뒤에 비트 연산자로 연산한다. 비트 단위로 연산을 하며 각 자릿수의 연산은 독립적이여서 다른 자릿수의 연산에 영향을 주지 않는다. AND 두 입력값이 모두 1 ->> 1을 출력 OR 하나 이상의 입력값이 1 ->> 1을 출력 XOR 입력값이 같지 않으면 ->> 1을 출력 연산자 비트1 비트2 결과 연산 예시 AND & 0 0 0 0010 0100 (36) 0000 0100 ( 4) ------------------& 0000 0100 ( 4) 0 1 0 1 0 0 1 1 1 OR | 0 0 0 0100 0001 (65) 0010 1000 (40) ------------------| 0110 1001 (105) 0 1 1 1 0 1 1 1 1 XOR ^ 0 0..
[Assembly Language] 사칙연산
[Assembly Language] 사칙연산
2022.03.171 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 %include "io64.inc" section .text global CMAIN CMAIN: mov rbp, rsp; for correct debugging GET_DEC 1, al GET_DEC 1, num PRINT_DEC..
[Assembly Language] Big/Little-Endian 빅/리틀 엔디안
[Assembly Language] Big/Little-Endian 빅/리틀 엔디안
2022.03.17Big Endian 빅 엔디언: 숫자 비교에 유리, 네트워크를 통해 데이터를 전송할 때 사용. Little Endian 리틀 엔디언: 캐스팅에 유리, Intel과 AMD 환경에서는 Little-Endian방식으로 저장된다.
[Assembly Language] ASCII code 아스키 코드
[Assembly Language] ASCII code 아스키 코드
2022.03.17
[ASSEMBLY] SASM Assembly Language
[ASSEMBLY] SASM Assembly Language
2022.03.151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 %include "io64.inc" section .text global CMAIN CMAIN: mov rbp, rsp; for correct debugging ;write your code here mov eax, 0x1234 mov rbx, 0x12345678 mov cl, 0xff mov al, 0x00 mov rax, rdx xor rax, rax ret ;section .data Colored by Color Scripter cs 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 31 32 33 34 35 36 ..
[Assembly Language] PE(Portable Executable) file structure
[Assembly Language] PE(Portable Executable) file structure
2022.03.14프로세스 메모리 구조 1 Bit = 0,1로 표현 가능 = 2^1 8 Bit = 1 Byte = -128~128 숫자 표현 가능 = 2^8 16 Bit = 2 Byte = 1 Word = -32,768~-32,768 숫자 표현 가능 = 2^16 32 Bit = 4 Byte = 2 Word = 1 dword (double-word) = 2^32 64 Bit = 8 Byte = 4 Word = 1qword (quad-word) = 2^64 ex. 포인터 32bit 운영체제에서는 4 Byte, 64bit 운영체제에서는 8 Byte이다. BIN (Binary) 2진수 ; 0 1 ; 0b (0b는 2진수를 나타낸다) ; 0b0 0b1 0b10 0b11 0b100 DEC (Decimal) 10진수 ; 0 1 2 3..