예를 들어 누산기의 이름은 EAX
이고 명령어 포인터는 IP
입니다. 또한 CL
및 DH
이라는 바이트가 있음을 알고 있습니다. 모든 이름에 대해 협약이 있어야한다는 것을 알고 있지만 그게 무엇입니까?x86 레지스터의 이름이 원래대로입니까?
답변
C와 D는 숫자/유형이며 상위 레지스터에 대해서는 H이고 상위 레지스터의 하위 파트에 대해서는 L입니다. http://en.wikipedia.org/wiki/X86
위키 백과에서 매우 잘 설명합니다.
위키 피디에서 추가 :
- AX/EAX/RAX : 배터리
- BX/EBX/RBX :베이스
- CX/ECX/RCX : 카운터
- DX/EDX/RDX를 : 일반 데이터/
* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer
역사입니다. x86은 8086에서 나온 8086에서 나온 것으로, 4008에서 나온 8008에서 가져 왔습니다. 16 비트 레지스터 AX, BX 등이 있으며 80386에서는 32 비트로 확장되었습니다.
추가 : BTW Motorola 68K는 시작부터 32 비트 레지스터를 가지므로 처음 몇 십 년 동안 프로그래밍하는 것이 훨씬 쉬웠습니다. 저는 인텔이 기술적 이유가 아닌 비즈니스상의 이유로 선정 된 프로젝트에서 일했습니다.
역사의 ISN을 놓친 계속해서 - 8080은 다른 레지스터 이름을 가지고 있고 그 이름은 8086에 들어 있습니다. 8086과 8080 변종 모두에서 특수 목적 레지스터가있는 CISC 아키텍처에 주목하면서 RISC는 나중에 ' 모든 레지스터는 거의 동일합니다. (대부분의 명령어를 8 비트로 인코딩하려고하는 대신 명령어 당 32 비트를 가짐으로써 도움이되었습니다). – ijw
@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
오래된 프로세서에는 A, B 등의 축전 기가 있습니다 (알파벳 순서). 16 비트 및 32 비트 누산기가 개발되었을 때 엔지니어는 X (확장)를 추가했습니다. C 언어는 B 언어 (벨 연구소)에서 개발 되었기 때문에 역사에 관한 모든 것입니다.
대회는 단지 그들이 내부에 익숙한 이름을 따라하기 위해 내부적 인 것입니다. 여기
실제로 레지스터는 알파벳 순서가 아닙니다. 실제 순서는 A, C, D, B입니다. –
좋은 답변 : 더 역사와 설명은 x86 assembly registers — Why do they work the way they do?
- 1. x86 레지스터의 NSString 출력을 NSArray로 변환하는 가장 좋은 방법
- 2. 레지스터의 함수 인수
- 3. EBP 프레임 포인터 레지스터의 목적은 무엇입니까?
- 4. 레지스터와 임시 레지스터의 차이점은 무엇입니까?
- 5. ESI 및 EDI 레지스터의 목적은 무엇입니까?
- 6. SI 레지스터와 DI 레지스터의 실제 차이점은 무엇입니까?
- 7. gdb에서 레지스터의 오프셋이있는 데이터에 액세스하는 방법은 무엇입니까?
- 8. 이름이
- 9. C++에서 SSE/AVX를위한 x86 CPU 디스패치
- 10. Windows에서 x86-mingw32에서 x86-mswin32-60으로 rubygems 플랫폼을 변경하는 방법
- 11. .NET 용 경량 x86 에뮬레이터/관리되는 환경에서 x86 코드 실행
- 12. x86 간단한 mov 명령
- 13. X86 어셈블리 - 칩 액세스
- 14. x86 명령어 세트 로드맵
- 15. RXTX x64 및 x86
- 16. ASM x86 관련 JMP
- 17. ntop Win32 x86 사용
- 18. System.Windows.Forms.WebBrowser : 강제로 X86?
- 19. XBAP를 사용하는 x86 TargetPlatform
- 20. VISTAx64에서 x86 프로세스를 생성하십시오.
- 21. X86 확장을 작성하는 방법
- 22. 나란히보기 C, x86 프로그램
- 23. x86 어셈블리 참조 시트
- 24. x86 디 컴파일을위한 리소스
- 25. x86 어셈블리의 COM?
- 26. x86 어셈블리 코딩의 매크로
- 27. x86 asm 디스어셈블러 라이브러리
- 28. x86 어셈블러 질문
- 29. x86 리틀 엔디안은 왜입니까?
- 30. 프로그램 파일 (x86) 문제
: http://www.swansontec.com/sregisters.html – rmmh
@Daniel는, 당신은 ESI, EDI, EBP 등 – Pacerier