어셈블리와 레지스터에 대해 공부중입니다.

gmlrjs0312의 이미지

궁금한게 생겼는데 64비트 운영체제에서 64비트 레지스터를 사용하는데 그때 만약 32비트나 그 이하(16,8..)의 파일이나 정보를 처리할 때 어떤 레지스터가 작용하여 어떻게 처리하는지가 궁금해서 여쭤봅니다.

익명 사용자의 이미지

방법이야 엄청 많겠지요.

x86_64처럼 ah/al(8bit)-ax(16bit)-eax(32bit)-rax(64bit) 이렇게 계층적으로 확장되는 레지스터가 있으면 물론 가장 편하고요.

그렇지 않더라도 레지스터 크기보다 작은 크기의 메모리를 부분적으로 load/store하는 명령어가 기본적으로 주어지는 경우가 많죠. mips의 lb/sb 명령어처럼.

정 안 되면 그냥 64비트째로 읽어버리고 레지스터 안에서 필요한 비트만 처리하면 됩니다.