2009-05-21 8 views
21

예를 들어 누산기의 이름은 EAX이고 명령어 포인터는 IP입니다. 또한 CLDH이라는 바이트가 있음을 알고 있습니다. 모든 이름에 대해 협약이 있어야한다는 것을 알고 있지만 그게 무엇입니까?x86 레지스터의 이름이 원래대로입니까?

답변

22

C와 D는 숫자/유형이며 상위 레지스터에 대해서는 H이고 상위 레지스터의 하위 파트에 대해서는 L입니다. http://en.wikipedia.org/wiki/X86

위키 백과에서 매우 잘 설명합니다.

위키 피디에서 추가 :

  1. AX/EAX/RAX : 배터리
  2. BX/EBX/RBX :베이스
  3. CX/ECX/RCX : 카운터
  4. DX/EDX/RDX를 : 일반 데이터/
+4

: http://www.swansontec.com/sregisters.html – rmmh

+0

@Daniel는, 당신은 ESI, EDI, EBP 등 – Pacerier

18

Something i found

* EAX - Accumulator Register 
* EBX - Base Register 
* ECX - Counter Register 
* EDX - Data Register 
* ESI - Source Index 
* EDI - Destination Index 
* EBP - Base Pointer 
* ESP - Stack Pointer 
17

역사입니다. x86은 8086에서 나온 8086에서 나온 것으로, 4008에서 나온 8008에서 가져 왔습니다. 16 비트 레지스터 AX, BX 등이 있으며 80386에서는 32 비트로 확장되었습니다.

추가 : BTW Motorola 68K는 시작부터 32 비트 레지스터를 가지므로 처음 몇 십 년 동안 프로그래밍하는 것이 훨씬 쉬웠습니다. 저는 인텔이 기술적 이유가 아닌 비즈니스상의 이유로 선정 된 프로젝트에서 일했습니다.

+0

역사의 ISN을 놓친 계속해서 - 8080은 다른 레지스터 이름을 가지고 있고 그 이름은 8086에 들어 있습니다. 8086과 8080 변종 모두에서 특수 목적 레지스터가있는 CISC 아키텍처에 주목하면서 RISC는 나중에 ' 모든 레지스터는 거의 동일합니다. (대부분의 명령어를 8 비트로 인코딩하려고하는 대신 명령어 당 32 비트를 가짐으로써 도움이되었습니다). – ijw

+1

@ijw -하지만 8080 ~ 8086 명의 번역자가 있으며 매핑이 있습니다. 8080의 레지스터가 AL, 8080의 레지스터 쌍 B, C가 CH, CL이되었습니다. 8080의 레지스터 쌍 D, E가 DH, DL이되었습니다. 8080의 레지스터 쌍 H, L이 BH, BL이되었습니다. 8086에는 LAHF 및 SAHF 명령어가 포함되어있어 8080 ~ 8086 번역에 ​​도움이됩니다. 8086은 SI (소스 인덱스), DI (대상 인덱스) 및 BP (기본 SS 세그먼트 레지스터로 기본 포인터)와 같은 레지스터를 추가했습니다. – rcgldr

3

오래된 프로세서에는 A, B 등의 축전 기가 있습니다 (알파벳 순서). 16 비트 및 32 비트 누산기가 개발되었을 때 엔지니어는 X (확장)를 추가했습니다. C 언어는 B 언어 (벨 연구소)에서 개발 되었기 때문에 역사에 관한 모든 것입니다.

대회는 단지 그들이 내부에 익숙한 이름을 따라하기 위해 내부적 인 것입니다. 여기

+0

실제로 레지스터는 알파벳 순서가 아닙니다. 실제 순서는 A, C, D, B입니다. –