작성한 질문수
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
레지스터 기초
작성
·
333
0
레지스터의 크기에 따라서 예약된 이름이 다르다고 하셨는데
이상태의 경우인데
강의에서는
mov eax, 0x1234
mov rbx, 0x1234567
mov cl, 0xff
이렇게 해주셨는데 그러면 eax라는 이름에 0x1234가 왜 안들어가고 rax에 값이 들어가나요?
rax는 64비트이고 eax는 32비트의 이름을 가진 레지스터인데.. 이해가 잘 가지 않습니다.
답변 2
1
eax, rax가 별개로 있다는 의미가 아니라rax의 '하위 절반'이 eax이고 eax의 '하위 절반'이 ax인 것입니다.
eax가 32비트라 32비트에 값을 할당하고 싶은데, 컴퓨터가 알아서 rax에 16진수 값을 넣은것인가요?
동일한 레지스터입니다. 쉽게 말해 A라는 레지스터가 있는데그 전체를 사용할지 (RAX), 하위 절바반 사용할지(EAX)이렇게 지정한다는거죠.
하루 지나고 다시 댓글 읽으니까 이해가 되었습니다. 감사합니다.
와 제가 궁금하던걸 이미 질문하셨군요! 감사함다
eax가 32비트라 32비트에 값을 할당하고 싶은데, 컴퓨터가 알아서 rax에 16진수 값을 넣은것인가요?