signed division operation의 경우
이 작업을 수행하려면 먼저 eax에 나뉘어지는 수가 들어가야 되고,
edx의 sign bit자리에는 나뉘어지는 수와 동일한 부호값(부호비트)이 세팅 되어있어야함
그리고 sign bit을 제외한 나머지 비트들은 0이 되있어야함
(안그러면 core dumped 에러 발생)
이상태에서 operation을 해야 몫은 eax에, 나머지는 edx에 들어감.
----------------------------------------------
그냥 단순히 eax에 나뉘어지는 수 넣고서
나눗셈 진행하면 될줄 알았더니 아니더라.
이건 AT&T 문법에서 그런거고, 인텔 문법에선 어떨지 잘 모르겠다.
x86인가?
x86은 아닐껄
AT&T면 ARM 아닐까
부호가 있을땐 부호확장(cbw,cwd,cdq)을 한다음 idiv로 나눠주는거
x86에서는 보면 movzx만 봐도 zero-extend라 해서 확장된비트들은 모두 0으로 채워주는걸로 알고있음.. 잘 기억이안나지만 함 찾아보셈
어렵당
eax에 값을 넣어두면 나누고 나서 몫이되고 나머지는 edx로 간다는 소린가
eax와 edx의 sign flag는 서로 같아야하고 edx의 나머지는 모두 0이어야하고