2015-01-18 2 views
0

저는 컴퓨터에서 어떻게 작동하는지에 대한 주제에 대해 YouTube에서 다양한 튜토리얼을 보았습니다. 데이터가 아직 메모리에 어떻게 저장되어 있는지 알 수 없습니다. , 32 비트 레지스터는 2 32 다른 값을 저장할 수 있습니다 내가 32 비트 시스템에서이 위키 페이지 http://en.wikipedia.org/wiki/32-bit에 찾고 있어요 그리고 난평신도의 관점에서 레지스터 이해하기

을 인용 시작하려면

. 부호가있는 의 범위는 32 비트로 저장할 수 있으며 -2,147,483,648에서 2,147,483,647 (부호없는 값 : 0에서 4,294,967,295)입니다. 따라서 32 비트 메모리 주소를 가진 프로세서는 바이트 주소 지정 메모리의 4 GiB에 직접 액세스 할 수 있습니다. 나의 이해에서

는 메모리 위치가 그래서 그 지역의 만에 정보를 저장할 수 0 4,294,967,295 출신 -2,147,483,648 완전히 나 또는 가능한 내가 이해하고 모든 잘못 혼동한다.

따옴표로 묶인 텍스트가 실제로 의미하는 바를 쉽게 이해할 수 있습니까?

답변

1

이 단락은 32 비트 레지스터에서 나타낼 수있는 고유 한 값의 수를 나타냅니다. 각각의 비트는 2 개의 값을 가질 수 있고 32 비트가 있기 때문에 2의 값이 입니다. 경우에 따라이 2 개의 고유 한 표현이 4,294,967,295 개의 양수 값 또는 2,147,483,648 개의 음수 및 2,147,483,647 개의 양수 값에 사용됩니다. 음수 (two's complement)와 플래그를 영리하게 나타내면 레지스터의 값에 대한 부호있는 해석과 부호없는 해석의 지침이 동일 할 수 있습니다.

이것은 프로세서에서 사용할 수있는 레지스터의 수와 관계가 없습니다. 프로세서의 개수에 따라 일반적으로 8에서 100 사이입니다.

+1

@ user3272483 "a 32 비트"에는 메모리 위치가 없습니다. ** 32 비트 주소 공간 **은 4,294,967,296 개의 주소 (일반적으로 바이트 수)를 나타내지 만 여러 가지 이유로 이러한 주소를 모두 사용할 수는 없습니다 (일부 언어는 NULL에 0을 예약하고 운영 체제의 커널은 주소의 절반을 예약 할 수 있음) , 도서관에서 자신의 코드 나 데이터에 사용할 수없는 일부 주소를 사용하면 컴퓨터에 물리적 + 스왑 메모리가 많이 없을 수도 있습니다 ...) –

1

인용문은 레지스터 값을 해석 할 수있는 두 가지 방법, 즉 부호없는 값과 부호있는 값을 설명합니다. 부호가있을 때, 비트 31은 "2의 보수"형식으로 부호화 된 음수를 나타내는 데 사용됩니다. 메모리 주소는 부호없는 값으로 참조됩니다. 특정 메모리 주소의 오프셋은 항상 서명 된 값으로 표시 될 수 있지만 반드시 그런 것은 아닙니다.

범위가 -2,147,483,648에서 2,147,483,647까지 또는 0에서 4,294,967,295 사이에 여전히 4,294,967,296 개의 고유 값이 있습니다.

1

CPU 레지스터는 메모리 어드레싱을위한 것이 아닙니다. 특히, 가산 또는 곱셈과 같은 기본 산술 연산에 사용됩니다. 그것들이 어떻게 해석되는지 (즉, 서명/서명되지 않음) 종속되는 어셈블리 명령어 (ISA에 의거)에 달려있다.

메모리 주소 지정은 부호없는 표현으로 작동 할 가능성이 있지만 적어도 그렇게 간단하지는 않을 수도 있습니다.