2010-12-08 5 views
0

윈도우 명령 프롬프트에서 DEBUG를 사용하여 5 개의 소수를 곱하려고 시도했지만 멀리 떨어져 있습니다. 진수 값 1303에서 내 프로그램의 결과는 4320. 소수점 이하 자릿수는 15, 12, 4, 2, 당신은 바이트 X 바이트 곱셈을하고어셈블리 문제

mov al, 15 
mov bl, 12 
mov bh, 4 
mov cl, 2 
mov ch, 3 
mul ax, bl 
mul ax, bh 
mul ax, cl 
mul ax, ch 
aam 
+1

실례 합니다만, 2 * 3 * 4 * 12 * 15는 4320입니다. – ruslik

+1

15 * 12 * 4 * 2 * 3 = 4320입니다. 왜 1303이어야합니까? – loxxy

+0

내가 잘못 입력했지만 프로그램은 1303을 리턴한다 –

답변

2

3. 분명 중간 결과가 예정되어 있어야한다 1 바이트 이상 필요합니다. 또한 CH 대신 AH를 곱합니다.

+0

mul ax, [value]와 같이 변경해야 하는가? –

+0

예, 오버플로를 방지합니다. –

+0

그래도 그랬지만 여전히 같은 결과를 얻었습니다. 이전 코드 대신에 지금 사용하고있는 코드를 넣을 것입니다 –

관련 문제