연습장

1일차 본문

언리얼 개발자/어셈블리

1일차

도다람 2022. 7. 20. 22:16

어셈블리어를 기초로 배우는 이유 : C++ 코드 실행을 하며 수많은 에러를 발견하는데에 도움이 됨

 

1. 환경 설정

 

SASM

* 코드 실행, 실행파일로도 저장 가능

* C++ / 어셈블리(가장 low함)

* 컴파일러, 어셈블러 == 번역기

* Section.text :코드에 대한 정보

Section.data :데이터에 대한 정보

 

-컴퓨터 3총사 : CPU, 메모리, 하드디스크(SSD) 

메모리와 하드디스크의 큰 차이점은 전기가 나가면 메모리보존이 하드디스크는 되지만 메모리는 안됨

 

<Hello 출력 코드>

%include "io64.inc"

section .text
global CMAIN
CMAIN:
    ;write your code here
    
    PRINT_STRING msg
    
    xor rax, rax
    ret
    
    section .data
        msg db 'Hello', 0x00

 


2. 데이터 기초

 

컴퓨터의 데이터 저장

★비트bit : 0과1

★바이트byte : 8개의 비트

워드word : 2바이트

 

최상위 비트가 부호를 담당한다(+,-)

 

; 주석문

 

10진수(0 1 2 3 4 5 6 7 8 9) : 사람친화적, DEC

2진수(0 1) : 컴퓨터친화적

0b0 0b1 0b10 0b11 0b100
0 1 2 3 4

16진수(0 1 2 3 4 5 6 7 8 9 A B C D E F) : ★0x 가 들어가면 16진수라고 생각하면 됨, HEX

0x00
0

 

2의 보수


3. 레지스터 기초

 

어셈블리 프로그램 = CPU + 래지스터(중요역할, 임시 저장) + 메모리(RAM)

래지스터와 메모리 사이 데이터를 왔다갔다

 

8bit = 1byte

16bit = 2byte = 1word

32bit = 4byte = 2word = 1dword(double-word)

64bit = 8byte = 4word = 1qword(guad-word)

 

mov 명령어 : 오른쪽 데이터가 왼쪽으로 이동

 

망치모양 아이콘 Ctrl + F9 : 빌드, 실행X 에러가 없는지 체크

F9 : 실행 

F5 : Debug모드

F10(한줄한줄 실행 후 상태를 볼 수 있음)

F11

'언리얼 개발자 > 어셈블리' 카테고리의 다른 글

3일차  (0) 2022.07.25
2일차  (0) 2022.07.24
Comments