궁금한게 생겼는데 64비트 운영체제에서 64비트 레지스터를 사용하는데 그때 만약 32비트나 그 이하(16,8..)의 파일이나 정보를 처리할 때 어떤 레지스터가 작용하여 어떻게 처리하는지가 궁금해서 여쭤봅니다.
방법이야 엄청 많겠지요.
x86_64처럼 ah/al(8bit)-ax(16bit)-eax(32bit)-rax(64bit) 이렇게 계층적으로 확장되는 레지스터가 있으면 물론 가장 편하고요.
그렇지 않더라도 레지스터 크기보다 작은 크기의 메모리를 부분적으로 load/store하는 명령어가 기본적으로 주어지는 경우가 많죠. mips의 lb/sb 명령어처럼.
정 안 되면 그냥 64비트째로 읽어버리고 레지스터 안에서 필요한 비트만 처리하면 됩니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
방법이야 엄청 많겠지요.
방법이야 엄청 많겠지요.
x86_64처럼 ah/al(8bit)-ax(16bit)-eax(32bit)-rax(64bit) 이렇게 계층적으로 확장되는 레지스터가 있으면 물론 가장 편하고요.
그렇지 않더라도 레지스터 크기보다 작은 크기의 메모리를 부분적으로 load/store하는 명령어가 기본적으로 주어지는 경우가 많죠. mips의 lb/sb 명령어처럼.
정 안 되면 그냥 64비트째로 읽어버리고 레지스터 안에서 필요한 비트만 처리하면 됩니다.
댓글 달기