«x86» 태그된 질문

x86은 Intel 8086 CPU에서 파생 된 아키텍처입니다. x86 제품군에는 32 비트 IA-32 및 64 비트 x86-64 아키텍처와 레거시 16 비트 아키텍처가 포함됩니다. 후자에 대한 질문에는 [x86-16] 및 / 또는 [emu8086] 태그가 지정되어야합니다. 질문이 64 비트 x86-64와 관련된 경우 [x86-64] 태그를 사용하십시오. x86 FPU의 경우 [x87] 태그를 사용합니다. SSE1 / 2 / 3 / 4 / AVX *의 경우 [sse] 및 해당되는 [avx] / [avx2] / [avx512]도 사용합니다.

5
"FS"/ "GS"레지스터의 용도는 무엇입니까?
그래서 다음 레지스터와 그 용도가 무엇인지 알고 있습니다. CS = 코드 세그먼트 (IP에 사용됨) DS = 데이터 세그먼트 (MOV에 사용됨) ES = 대상 세그먼트 (MOVS 등에 사용됨) SS = 스택 세그먼트 (SP에 사용됨) 그러나 다음 레지스터는 어떤 용도로 사용됩니까? FS = "파일 세그먼트"? GS = ??? 참고 : 난 하지 …

5
x86 어셈블리의 레지스터에 사용되는 푸시 / 팝 명령어의 기능은 무엇입니까?
어셈블러에 대해 읽을 때 나는 종종 프로세서의 특정 레지스터를 푸시 하고 나중에 이전 상태로 복원하기 위해 다시 팝 한다고 쓰는 사람들을 만납니다 . 레지스터를 어떻게 밀 수 있습니까? 어디로 밀려나? 왜 이것이 필요한가요? 이것이 단일 프로세서 명령으로 귀결됩니까 아니면 더 복잡합니까?

3
CPU 권한 링 : 링 1과 2가 사용되지 않는 이유는 무엇입니까?
x86 CPU 권한 링과 관련된 몇 가지 질문 : 대부분의 운영 체제에서 링 1과 2를 사용하지 않는 이유는 무엇입니까? 다른 아키텍처와의 코드 호환성을 유지하기위한 것입니까, 아니면 더 나은 이유가 있습니까? 실제로 이러한 링을 사용하는 운영 체제가 있습니까? 아니면 완전히 사용되지 않았습니까?
102 x86  cpu  privileges 

11
최신 하드웨어에서 부동 소수점 대 정수 계산
저는 C ++에서 성능에 중요한 작업을 수행하고 있으며 현재 "더 빠르기"때문에 본질적으로 부동 소수점 문제에 정수 계산을 사용하고 있습니다. 이로 인해 성가신 문제가 많이 발생하고 성가신 코드가 많이 추가됩니다. 이제 저는 부동 소수점 계산이 약 386 일 동안 얼마나 느 렸는지 읽은 기억이납니다. 여기서 (IIRC) 선택적 공동 프로세서가 있다고 믿습니다. …

5
EBP 프레임 포인터 레지스터의 용도는 무엇입니까?
저는 어셈블리 언어의 초보자이며 컴파일러가 내 보낸 x86 코드가 일반적으로 EBP레지스터를 다른 용도로 사용할 수있을 때 릴리스 / 최적화 모드에서도 프레임 포인터를 유지한다는 것을 알았 습니다. 프레임 포인터가 코드를 디버그하기 쉽게 만드는 이유를 이해 alloca()하고 함수 내에서 호출되는 경우 필요할 수 있습니다 . 그러나 x86에는 레지스터가 매우 적으며 그중 하나가 …



2
x86 페이징은 어떻게 작동합니까?
이 질문은 주제에 대한 좋은 무료 정보의 공백을 채우기위한 것입니다. 나는 좋은 대답이 하나의 큰 SO 대답 또는 적어도 몇 가지 대답에 맞을 것이라고 믿습니다. 주된 목표는 완전한 초보자가 스스로 매뉴얼을 읽고 페이징과 관련된 기본 OS 개념을 이해할 수 있도록 충분한 정보를 제공하는 것입니다. 권장 지침 : 답변은 초보자에게 친숙해야합니다. …

6
인텔이 프로세서에서 내부 RISC 코어를 숨기는 이유는 무엇입니까?
Pentium Pro (P6 마이크로 아키텍처)부터 인텔은 마이크로 프로세서를 재 설계하고 이전 CISC 지침에 따라 내부 RISC 코어를 사용했습니다. Pentium Pro 이후 모든 CISC 명령어는 더 작은 부분 (uops)으로 분할 된 다음 RISC 코어에 의해 실행됩니다. 처음에는 인텔이 새로운 내부 아키텍처를 숨기고 프로그래머가 "CISC 쉘"을 사용하도록 강요한다는 것이 분명했습니다. 이 결정 …



3
지정된 실행 파일 외부의 단일 단계 어셈블리 코드에 gdb를 사용하면 "현재 함수의 범위를 찾을 수 없습니다"오류가 발생합니다.
나는 gdb의 대상 실행 파일 외부에 있으며 해당 대상에 해당하는 스택도 없습니다. 어쨌든 나는 x86 어셈블리의 전문가가 아니기 때문에 어셈블리 코드에서 무슨 일이 일어나고 있는지 확인할 수 있도록 한 단계 씩 진행하고 싶습니다. 불행히도 gdb는이 간단한 어셈블리 수준 디버깅을 거부합니다. 적절한 중단 점을 설정하고 중지 할 수 있지만 한 단계 …

2
"rep; 아니,” x86 어셈블리에서 의미합니까? "일시 중지"지침과 동일합니까?
무슨 rep; nop뜻이야? pause지시 와 같은가요 ? rep nop(세미콜론 제외) 와 동일 합니까? 간단한 nop지시 와 다른 점은 무엇입니까 ? AMD 및 Intel 프로세서에서 다르게 작동합니까? (보너스)이 지침에 대한 공식 문서는 어디에 있습니까? 이 질문에 대한 동기 다른 질문 에 대한 의견에 대한 토론을 한 후 rep; nop;x86 (또는 x86-64) …

3
Win32에서 unsigned int 로의 이중 캐스트가 2,147,483,648로 잘립니다.
다음 코드를 컴파일합니다. double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } 출력 (MSVC x86) …

1
x86 명령어에는 자체 인코딩과 모든 인수가 동시에 메모리에 있어야합니까?
RAM이 단일 물리적 페이지로만 백업되는 Linux VM을 실행할 수 있는지 여부를 파악하려고합니다. 이를 시뮬레이션하기 위해 KVM에서 중첩 된 페이지 결함 핸들러를 수정하여 현재 처리 된 페이지 결함에 해당하는 것을 제외하고 모든 중첩 된 페이지 테이블 (NPT) 항목에서 현재 비트를 제거했습니다. Linux 게스트를 시작하려고 할 때 메모리 피연산자를 사용하는 어셈블리 명령어는 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.