는 GNU 프로젝트의 일부 소스 코드를 읽는 동안, 나는 인라인 어셈블리의이 비트를 건너 왔어요 : 여기도움말 이해 DIV 명령이
__asm__ (
"divq %4"
: "=a" (q), "=d" (r)
: "0" (n0), "1" (n1), "rm" (d)
);
변수 q
, r
, n0
, n1
하고, d
은 64 비트 정수입니다. 나는이 일의 요지를 잡을 수있는 충분한 모임을 알고 있지만, 확실하지 않은 몇 가지 세부 사항이 있습니다.
는 이해가 무엇 : 우리는 d
하여 RAX 레지스터의 내용을 나누어 q
의 몫을 배치하고, r
에 나머지를 배치하고
. 내가 왜 세 입력이 여기에있다
- 을 이해하지 못하는 어떤
? 우리는 단지 배당과 제수를 입력하면되기 때문에, 3 입력에 대해 을 사용할 수 있습니까?
- 어떤 입력이 배당인지 알 수 없습니다. 더 일반적으로, 나는 실제로 아무 것도 보지 못합니다. RAX 레지스터에로드됩니다. 그래서 어떻게 분할해야 하는지를 어떻게 알 수 있습니까?
+1 형식이 잘 지정된 질문입니다. 나는 "이해하는 것"과 "이해할 수없는 것"섹션을 좋아합니다. –