Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트
- 보안뉴스 요약
- 오라클
- numpy
- 랜섬웨어
- 보안뉴스
- 보안뉴스한줄요약
- 자바스크립트 jQuery
- GIT
- php
- 자바스크립트 node
- 보안뉴스요약
- 카카오프로젝트100
- 파이썬
- 깃허브
- Oracle SQL
- oracle db
- 자바스크립트 객체
- 다크웹
- 카카오프로젝트
- 카카오프로젝트 100
- javascript
- 자바스크립트 API
- oracle
- python
- 보안뉴스 한줄요약
- 자바스크립트 기본 문법
- 자바스크립트 prototype
- 자바스크립트 element api
- ES6
Archives
- Today
- Total
FU11M00N
[어셈블리어] 어셈블리어란? 기초 이론 1 본문
어셈블리어란?
0과 1의 이진수로 프로그램을 하는 기계어는 사람이 봤을 때는
알아보는 게 거의 불가능하고 이를 보완해서 나온 언어가 어셈블리 언어입니다.
기계어가 CPU의 종류에 따라 다르기 때문에 어셈블리어와 호환성이 잘되어있지않은 언어입니다.
어셈블리어의 특징
- 동일한 종류의 프로세스에서만 실행된다.
- 프로세서에 대한 사전지식이 필요하다.
- 메모리나 입출력장치, 레지스터 등의 구성요소를 직접 다룰 수 있다.
- 컴퓨터에서 실행하는 과정 등을 이해하기 쉽다.
고급언어의 특징
자바와 파이썬 같은 고급언어 들은 CPU의 종류가 달라도 컴파일에 지장이 없습니다.
CPU의 기본적인 베이스를 알아둬야 합니다.
어셈블리와 비교했을때 코드가 더 짧고 이해하기 쉽습니다.
컴파일러 VS 어셈블러
- 컴파일러
- 고급언어 프로그램 입력
- 구문 오류 검사
- 목적코드 생성
- 한 문장을 여러 개의 기계 코드로 변환.
- 어셈블러
- 기계어 형태의 오브젝트 코드로 해석해주는 언어 번역 프로그램
- 어셈블리어 프로그램입력
- 하나의 어셈블리어 명령어는 하나의 기계 코드에 대응
어셈블리 실행파일 생성 과정
test.asm이라는 어셈블리 텍스트 파일이 어셈블러를 거치면
os규약과 합쳐져 test.obj 코드가 된다.
이후 이 목적 코드가 링커를 거쳐 라이브러리 파일이 합쳐지면 비로소 test.exe가 된다.
어셈블러의 종류
- MASM - Windows
- GAS - Linux/Unix
- NASM - Windows, Linux, MAC
- SASM - Wiondows, Linux
이중 SASM 은 통합개발 환경으로 GUI, CUI 둘 다 지원하며,
공통 매크로 함수를 지원합니다.
화면 및 키보드 입출력과 관련된 다른 운영체제 서비스를 추상화시킬 수 있습니다.
글쓴이는 SASM을 이용할 것이고,
다운로드는 https://dman95.github.io/SASM/english.html 이 링크에서 다운로드하면 된다.
설치하고 실행하면 위 그림과 같은 화면이 나올 것이다.
Create new project를 이용해서 새로운 프로젝트를 만들어주시면 생성이 됩니다!
'Programming > Assembly' 카테고리의 다른 글
[어셈블리] 어셈블리(nasm)와 c언어를 이용한 난수값 생성 2편 (0) | 2020.09.12 |
---|---|
[어셈블리] 어셈블리어(nasm) 와 c언어 를 이용해 난수값 생성 1편. (1) | 2020.09.12 |
[어셈블리어] 어셈블리 덧셈,뺄셈,곱셈,나눗셈 (0) | 2020.04.15 |
[어셈블리어] 어셈블리어 기초 이론 2 (0) | 2020.04.11 |
Comments