C++

레지스터 이해하기 (1)

나른한여우 2023. 4. 14. 19:22

연산은 CPU내 레지스터에서 진행..

register는 가장 빠른 저장 공간

 

rax 64bit

eax 32bit

 

 

64bit에서는 범용 레지스터로 rax, rbx, rcx, rdx 가 존재

 

sasm에서

mov eax, 0x1234 를 실행할경우 실행중에 레지스터 rax에 0x1234값이 저장됨

rax(64bit)안에 eax(32bit)에 저장한거로 이해함..

 

mov rbx, 0x12345 는 rbx에 0x12345 저장됨

 

mov cl, 0xff 경우 rcx안에 해당값이 저장됨

 

--------------------------------------------------------------------

mov eax, 0x1234

mov al, 0x00

실행 시 rax에 0x1234가 저장되면 

mov eax, 0x1234 결과

이후에 mov al, 0x00를 실행하면 al은 8bit의 범위를 나타내기때문에 

8bit 범위 내 값들이 0으로 변경됨

결국 rax에는 0x1200이 저장되는걸 볼수있음

'C++' 카테고리의 다른 글

C++ 열거형  (0) 2023.07.03
C++ 유의사항 1)  (0) 2023.06.21
SASM 어셈블리언어 (2)  (0) 2023.04.14
SASM 어셈블리언어 (1)  (0) 2023.04.12
C++ 프로그래밍 입문  (0) 2023.04.12