-1
num1
및 num2
및 num2
두 개의 숫자에 사용자 입력이 있습니다.서명되지 않은 제품 가져 오기 도움이 필요합니다.
나는이 숫자의 부호없는 제품을 표시해야합니다,하지만 난 mul
를 사용할 때,이 제품을 서명 제공합니다
mov eax, [num1]
mov ebx, [num2]
mul ebx
내 입력 num1 = 2 num2 = -2
내가이 번호를 저장하고 -4
출력입니다. 그것이 내가 t을 저장하고있는 방법입니다 경우
num1 resd 1
num2 resd 1
기지국 어떤 도움은 매우 확실하지 주시면 감사하겠습니다 그는 -2
값 또는 내가 mul
으로 잘못하고있는 것을 가치가 있습니다.
어떻게 C에서 하시겠습니까? –
'mul'은 2 개의 부호없는 값의 부호없는 곱을줍니다. unsigned 값으로 취급 할 때 부호있는 -2 값은'0xFFFFFFFE' (상당히 큰 숫자)로,'edx : eax' 결과는'0x00000001 : 0xFFFFFFFC'가되고, 그 하위 32 비트 결과 부분 인'0xFFFFFFFC'를 부호있는 숫자로 표시합니다 , -4입니다. ... 2 * 2를 원한다면 어떻게 든 "복근"을 먼저해야합니다. 예를 들어,'eax'가 32 비트 값이고, 부호가 있거나 부호가 없거나, 숫자가 아니므로, 여러분이 원하는대로 처리 할 수 있다는 것을 알아 두십시오. 따라서 부호없는 10 진수로 취급되는'0xFFFFFFFC'는'4294967292'이지만 서명 된 것으로 취급됩니다. '-4'. – Ped7g
@MargaretBloom 그래서 그가 물어볼 것입니까? ;) – Ped7g