2012-09-01 19 views

Trả lời

12

Khi bạn thực hiện phân chia 1 bộ phận trên CPU x86, EDX: EAX (64 bit) được chia cho toán hạng 1 (32 bit). Kết quả được lưu trữ trong EAX (32 bit). Vì vậy, khi bạn chia cho EDX: EAX bởi EDX, những gì bạn nhận được là (EDX * 0x100000000 + EAX)/EDX, kết quả luôn trên 0x100000000 và không vừa với thanh ghi đích hoặc số chia là số không. Trong cả hai trường hợp, một ngoại lệ phân chia xảy ra.

Xem thêm this page (từ sách hướng dẫn dành cho nhà phát triển của Intel).

Lưu ý rằng điều này không cụ thể đối với bộ lắp ráp (MASM), nhưng đối với nền tảng trong trường hợp này.