정말 어셈블리 언어가 아니지만 이러한 작업을 방해하는 기본 컴퓨터 언어입니다.
어셈블리는 읽기 쉬운 단어 또는 니모닉으로 구성되지만 실제로는 기계 코드의 1과 0을 직접 나타냅니다. x86 CPU에서 각 명령어는 일반적으로 개별 바이트가 포함 된 일련의 바이트 또는 의미가있는 바이트 내의 비트로 구성됩니다. 특정 비트는 명령어를 나타내고 다른 비트는 addressing mode을 나타냅니다. 예제와 같은 레지스터 주소 지정 모드에서 일부 비트는 mov
명령어의 소스 및 대상으로 사용될 특정 레지스터를 나타냅니다.
이제 x86 제품군의 프로세서는 CPU 아키텍처가 더 단순한 1970 년대로 거슬러 올라갑니다. 그 당시에는 의 개념이 중요했습니다. ax
은 16 비트 x86 누산기입니다. 모든 계산은이 레지스터에 구축되거나 축적되어 모든 명령에서 사용 가능합니다. 다른 범용 레지스터는보다 제한된 사용 범위를가집니다.
명령은 바이트를 기반으로하므로 명령 디코딩을 빠르게 유지하기 위해 가능한 한 명령을 나타 내기 위해 원하는 바이트 수를 원했습니다. 가능한 한 많은 지시 사항을 가능한 한 짧게 유지하기 위해 누적 기의 사용이 중심이됩니다.
모토로라 680x0과 같은 최신 CPU의 범용 레지스터는 이전에 누적 기의 도메인이었던 기능이 더 많습니다. RISC CPU에서 모든 레지스터는 축약 형만큼 유연합니다. 필자는 64 비트 모드에서 현재의 x86/amd64 명령어 세트가 훨씬 덜 제한적이라고 들었습니다.
언제합니다. 먼저 나는 너의 반응을 읽었다. ieve,하지만 NASM의 설명서에서, 확실히 mov reg_dseg, reg_cseg 명령은 없습니다. – samoz
이것은 이유가 아니며 결과입니다. –
무엇? 네가 뭘 의미하는지 이해가 안돼. – samoz