2015-02-01 3 views
-1

a와 b의 값을 알지 않고 b 곱하기 및 b 곱하기 ADD를 수행하는 루프를 사용하지 않고 최적화 된 방법이 있습니까? 감사합니다.어셈블리 8086 : MUL과 IMUL을 사용하지 않고 a * b 곱하기

+0

왜 그렇게 했습니까? 무엇을 성취하려고합니까? – ybungalobill

+0

예를 들어, 행렬 2x2의 행렬식을 계산해야합니다. 나는 일반적인 솔루션이 필요하므로 예를 들어 * e-b * d를 계산해야하지만 최적화 된 솔루션이 필요합니다. 나는 루프 솔루션을 피하는 것을 선호한다. – Anth

+0

아니요, 'a' 또는'b'의 값에 대해 알지 못하면서는 안됩니다. ('a' 또는'b''가 ** 0 ** ** ** 1 **의 값을 가지면, 우리는 그 특별한 경우에 대한 최적화 가능성을 배제 할 수 없습니다. 그렇지 않다면,'MUL' 작업이 이미 최적화되어 있습니다. – spencer7593

답변

3

n 비트 테스트, 시프트 및 추가를 사용하여 n 비트 숫자 a 및 b에 대해 * b를 계산할 수 있습니다. 그러나 이것은 본질적으로 MUL 명령어가 하드웨어에서 수행하는 작업이므로, 그보다 빠른 것은 없습니다.

+2

To MUL을 사용하는 것보다 SHIFT와 ADD를 사용하는 것이 현저히 빠름을 강조합니다. 훨씬 느립니다. –