내가 어셈블리에 인쇄해야 64 비트 정수를 가지고,하지만 난 32 비트 시스템에서 작업하고, 그래서 내 64 비트 정수를 두 개의 32 비트 레지스터에 저장하십시오. 정수의 상위 부분은 % edx에 저장되고 하위 부분은 % eax에 저장됩니다. 어셈블리 : 그들은 것처럼 두 개의 32 비트 레지스터의 값을 사용하여 구분 한 64 비트 정수
난 그냥 지속적으로 10 분할, 32 비트 정수에게 문제를 인쇄하지 않으며 나머지를 인쇄하는 방법을 알고있다.또한 64 비트 숫자에 32 비트를 곱하는 방법도 알고 있습니다.
는하지만 나를 죽이고하는 부문이다
내가 수집 한 것과, 나는 내가 같이 두 개의 답을 결합 어떻게 든 열로 내 레지스터 % EDX 및 % EAX의 각 분할,하고 생각 I 곱셈과 함께 하겠지만, 각 부분의 나머지와 지수로 무엇을해야합니까?
나는 32 비트 리눅스 시스템에서 AT & T의 86 구문을 사용하여 GNU 어셈블러로 일하고 있습니다. 덕분에
난 당신이, 즉 충분히 구현하고도 올바른 순서로 숫자를 얻을 쉬워야한다 반복 뺄셈을 사용하는 것이 좋습니다) – Jester
[DIV] (http://www.felixcloutier.com/x86/DIV .html)는 이미 소스 피연산자에 의해 edb : eax를 나눕니다. 64b/32b => 32b division을합니다. 문제는 몫이 eax에 맞지 않으면 나누기 오류 (0으로 나누기와 동일)로 오류가 발생한다는 것입니다. Linux에서는 SIGFPE를 트리거합니다. 몫에 64 비트가 필요할 경우 rcgldr의 대답 만 있으면됩니다. –