C++프로그래밍/어셈블리 언어

레지스터 기초

season97 2024. 9. 14. 16:06

※ 익숙해져야 할 용어 

ㆍ 8bit = 1byte

ㆍ 16bit = 2byte = 1 word

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

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

 

컴퓨터 구조

 

ㆍ 데이터를 저장할 수 있는 위치는 여러개다.

 

ㆍ 메모리에도 저장할 수 있고 레지스터에서도 저장할 수 있고 하드디스크에서도 저장할 수 있고...

 

ㆍ cpu가 어떠한 연산을 할 때 자신의 결과물을 어딘가에 저장을 하긴 해야한다.

 

ㆍ cpu와 메모리, 하드디스크와는 거리가 너무 멀다! 임시적으로 가까운곳에 저장하고 싶다!

 

그래서 레지스터가 필요하다.

레지스터

64bit을 풀로 사용할 것이면 rax

 

32bit만 사용할거면 eax..... 16..ax   ah al 등등

앞 보라색이 몇비트를 사용하겠다 라는뜻

 

ㆍ 해당 데이터들이 레지스터로 들어가는걸 확인할 수 있다.

결과창

ㆍ 현재 설정에서 64비트 환경으로 설정해 둿기에 rax로 레지스터에 저장된다.

 

결과가 어떻게나올가?

→ al은 8bit

→ al부분을 00으로 밀어버려라! 라는뜻 즉 8bit아래는 다 0으로 밀려버리는 결과가 출력된다

결과창

 

'C++프로그래밍 > 어셈블리 언어' 카테고리의 다른 글

어셈블리 논리연산  (0) 2024.09.15
쉬프트 연산  (0) 2024.09.15
문자와 엔디안  (0) 2024.09.14
변수와 레지스터  (0) 2024.09.14
데이터 기초 (숫자를 담는 크기)  (0) 2024.09.14