0
이, 저를 설명해주십시오 분할 오류 :조립이 코드는 "0으로 나누기"오류가 발생하는 이유
"mov 인 도끼, 300
mov 인 BL, 2
IDIV의 BL"
다음과 같아야합니다. al = ax div source, ah = ax mod 소스
이, 저를 설명해주십시오 분할 오류 :조립이 코드는 "0으로 나누기"오류가 발생하는 이유
"mov 인 도끼, 300
mov 인 BL, 2
IDIV의 BL"
다음과 같아야합니다. al = ax div source, ah = ax mod 소스
idiv
은 귀하가 말한대로 al
에 몫을 생성하는 부호있는 부분입니다. 그것은 8 비트 레지스터이고 300/2=150
은 부호가있는 산술을 사용할 때 8 비트에 맞지 않습니다 (최대 값은 127
이므로). 다소 오도 된 일이지만 오버플로에 대해서도 divide by zero
이됩니다 (실제로는 #DE divide error
). 이것은 물론 명령 세트 참조로 작성됩니다.
부호없는 계산이 만족 스럽다면 div bl
을 사용할 수 있습니다.이 경우 150
은 al
에 해당하며 오류가 발생하지 않습니다.