Adventure of 빠타박스
article thumbnail
728x90
728x90
SMALL
 

SASM - Simple crossplatform IDE for NASM, MASM, GAS, FASM assembly languages

SASM SASM (SimpleASM) - simple Open Source crossplatform IDE for NASM, MASM, GAS, FASM assembly languages. SASM has syntax highlighting and debugger. The program works out of the box and is great for beginners to learn assembly language. SASM is translated

dman95.github.io

초기 환경 설정

설치


환경 설정

mode 와 Assembler만 값 세팅 해주면 된다.

 

  • 프로젝트 생성
    • 프로젝트 New project 이후에 값을 한번 넣어보자

  • PRINT_STRING = SAMS 에서 제공하는 Utility 함수

실행버튼 = F9
디버그 = F5

%include "io64.inc"

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

 

이것들을 실행파일로도 만들 수 있다.

그래도 만들어봤자 hello world만 출력되기에 아무 창도 뜨지 않는다.

cmd 커맨드 창으로 한번 실행해보자.

해당 파일을 실행하면 이런식으로 뜨는 것을 확인 할 수 있다.

 

    • 이것들은 어셈블러의 역할을 한다.
    • SASM은 통합 환경

컴퓨터는 자기들이 이해하기 쉬운 언어로 받아들인다.

그래서 만들어준 코드를 기계어로 번역해주는 작업이 필요하다.

그것이 컴파일러 또는 어셈블러 라고 한다.

어셈블러는 말그대로 번역기 라고 생각하면 된다

일종의 통역 기능

한국어 ⇒ 어셈블러 ⇒ 영어

통합환경 자체가 번역기 라고 생각하면 됨


이런식으로 section을 구분해 주고 있다

 

프로그래밍을 할 때 이 작성된 코드가 실행되는 부분이지만.

반드시 코드만 있을 것은 아니고 아래 section .data 처럼 데이터가 바뀌어 있을 수도 있다.

 

그래서 윈도우 의 실행파일 구조를 보면 exe파일이 어떤식으로 만들어져 있는지 보면.

아래와 그림과 같이 실행 파일 자체가 이런 정보를 담고 있고 이것들을 실행하면 메모리에 올라갈 것이다.

출처 : https://furysecurity.tistory.com/28


컴퓨터 구조

CPU → 메모리 → 하드디스크 3총사

CPU → 메모리 → 하드디스크 3총사

 

하드디스크 : 접근은 느리나. 영구적으로 데이터를 저장할 수 있다.

메모리 : 하드디스크 보다는 접근이 빠르나. 데이터가 휘발성이다(전원이 꺼지면 데이터가 날라가는)

 

롤 게임 프로그램을 실행하면 메모리에 이렇게 올라와 있는 것을 볼 수 있다.

하드 디스크에서 해당 파일을 다 메모리에 파일내용들을 복사해서 시작하고

CPU와 메모리 사이에서 프로그램 진행이 된다.

 

메모리 안에서 일어나는 일

 


 

1. 어셈블리는 저수준 언어이다, 레지스터도 작업할 수 있다.

2. 어셈블러는 일종의 번역기 

3. 하드디스크 는 속도는 느리나, 데이터를 거의 영구적으로 저장 

4. 메모리(RAM)은 속도는 빠르나, 데이터가 휘발성

 

- 참고 : C++에서는 레지스터 작업은 딱히 모르고 작업한다.

 

 

728x90
728x90
LIST

'Programming > ASSEMBLY' 카테고리의 다른 글

[Assebly_SASM_기초] 데이터 기초_1  (0) 2023.06.12
profile

Adventure of 빠타박스

@PPATABOX

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!