관리 메뉴

FU11M00N

[어셈블리어] 어셈블리어 기초 이론 2 본문

Programming/Assembly

[어셈블리어] 어셈블리어 기초 이론 2

호IT 2020. 4. 11. 21:53

CPU(Central Processing Unit)?

메모리에 있는 내용을 읽고, 쓰는 데이터를
메모리와 각 레지스터로 보냅니다. 프로그램의 명령을 해석하고 실행합니다
하나의 프로세서는 12~14개의 레지스터를 가지고 있고 
CPU가 하고있는 연산, 논리 장치는 숫자와 기호에 관한 연산자를 인식합니다.

CPU(Central ProcessingUnit) 레지스터의 종류

범용 레지스터, 상태 레지스터, 플래그 레지스터 가 존재합니다.

레지스터란

레지스터는 CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치이다!

CPU내부의 기억 장소로 PC가 정보를 처리하기 위해서는 그 정보들이 셀에 저장되어있어야 하는데,
이러한 셀들을 레지스터라고 불리고 8비트 혹은 16비트 레지스터들이 존재하며,

플리-플롭 회로들의 집합이라고 부릅니다.


플립-플롭이란

전원이 공급되는 한, 상태의 변화를 위한 신호가 발생할 때까지
현재의 상태를 유지하는 논리회로이고, 플립플롭 1개가 1Bit를 구성합니다.
레지스터를 구성하는 기본 소자로 2개의 NAND 혹은 NOR 게이트를 이용하여 구성되어있습니다.

RAM(Random Access Memory)

흔히 작업테이블이라 부른다. 프로세스가 보조기억장치에 있는
프로그램을 실행시키고 작동하기 위해서 필요한 정보들을 저장하는데 쓰이고 주 기억장치라고도 부른다

주소가 정해질 수 있는 형식이며  Random Access Memory의 약어이다.

사진1-1

32bit? 64bit?

우리가 컴퓨터를 시스템을 이용할때 흔히 32bit 64bit 개념이 나오는데, 
여기서 말하는 비트 수는 명령을 한 번에 처리할 수 있는 레지스터의 비트 수입니다.
즉 내 레지스터 하나가 저장가능한 공간이 32비트인지 64비트인지  말하는 겁니다.
32비트 시스템이 인식가능한 최대 메모리가 4GB인 이유가 이와 같습니다.
32비트로 한 번에 표현 할 수 있는 주소가 4GB 즉 2의 32승 이기 때문입니다.
하지만 이것은 다른 알고리즘을 사용하면 더 인식이 가능하지만, 여러 가지 문제점이 생깁니다.

 

데이터를 다루는 크기에 따라 다른 이름의 레지스터

사진1-2

A 레지스터인 경우일때는 각각 

  • 64bit 단위 : RAX
  • 32bit 단위 : EAX
  • 16bit 단위 : AX  
  • 8bit 단위 : AH, AL

어셈블리에서 사용되는 간단한 명령어들 

사진1-3
사진1-4

 

전 어셈블리어 포스팅인 https://nevertrustbrutus.tistory.com/49 과 이어져 어셈블리어 기초 이론에 대해 알아봤습니다!

다음 포스팅부턴 SASM 플랫폼을 이용하여 어셈블리어 명령어를 실행해보고 확인해보는 시간을 가져봅시다!

Comments