Hello World
-
x86-64 Assembly Language 3 Hello world와 메모리 구조Linux Development/Kernel 2021. 7. 23. 00:21
Hello world in 32bit Architecture Hello world in 64bit Architecture 1. Hello world in 32bit Architecture 이전 설명에서 본 nasm 코드를 다시 보자. 코드의 내용 중 "section. text"라는 라인과 "section. data"라는 라인이 보인다. 이는 32bit 아키텍처 cpu가 제공해주는 4GB의 가상 메모리 주소 공간에 "코드 세그먼트"와 "데이터 세그먼트"에 배치될 내용이라는 걸 의미한다. 4GB의 가상 메모리 주소 공간 보통 메인 메모리(RAM)는 1바이트(8비트) 단위로 내용을 기록한다. 이때 우리는 메모리 주소로 2비트를 사용할 수 있다고 가정해보자. 00, 01, 11, 10의 네 가지 표현이 가능하고..
-
x86-64 Assembly Language 2 초기 환경 세팅Linux Development/Kernel 2021. 7. 21. 05:24
Assembly language를 위한 세팅 GAS에서의 Hello world NASM에서의 Hello world 1. Assembly Language를 위한 세팅 리눅스에서 가장 많이 사용되는 어셈블러는 Intel문법의 NASM과 AT&T문법의 GAS이다. 이를 위한 세팅을 해보자. 가장 먼저 컴파일러가 필요하다. GAS는 리눅스 고유의 C 컴파일러 패키지인 GCC에 포함되어 있는 어셈블리 컴파일러다, NASM도 역시 독립적인 어셈블리 컴파일러라서 따로 설치해 줄 필요가 있다. 난 리눅스 Ubuntu 21.04 버전에서 작업할 것이다. VMware로 우분투를 설치하는 방법은 아래 내 블로그 링크에 나와있다. VMware에서 Ubuntu 설치 VMware란? 현재 시중에 나와있는 버츄얼 머신 프로그램 중..