2017-07-11 16 views
5

Sự khác biệt duy nhất được đề cập trong Intel instruction set reference là việc sử dụng cờ tràn thay vì cờ mang. Khi nào người ta sử dụng ADOX thay vì ADCX để thực hiện một bổ sung chưa ký với một carry?Khi nào sử dụng ADOX thay vì ADCX?

+0

Thông thường bạn nên sử dụng 'adc' vì nó nhỏ hơn (ít hướng dẫn byte), và viết tất cả các cờ (tránh bất kỳ một phần cờ sáp nhập hình phạt để được hướng dẫn sau trên tất cả các CPU). Chỉ sử dụng 'adcx' hoặc' adox' nếu bạn đặc biệt muốn hành vi của chúng. –

Trả lời

8

ADOX có thể được sử dụng khi bạn không muốn ghi đè cờ mang theo, giống như bạn đã lưu trữ thứ gì đó như xoay vòng.

Tuy nhiên việc sử dụng chính của họ là để tăng tốc arithmetics lớn int vì bây giờ bạn có thể làm hai bổ sung với carry song song kết hợp với mulx

Từ giấy của Intel New Instructions Support Large Integer Arithmetic

ADCX/ADOX Hướng dẫn

Hướng dẫn adcxadox là các phần mở rộng của lệnh adc, được thiết kế để hỗ trợ hai chuỗi mang riêng biệt. Chúng được định nghĩa là:

adcx dest/src1, src2 
adox dest/src1, src2 

Cả hai hướng dẫn tính tổng của src1src2 cộng với một carry-in và tạo ra một dest tổng sản lượng và một carry-out. Sự khác biệt giữa hai hướng dẫn này là adcx sử dụng cờ CF để thực hiện và thực hiện (để lại cờ OF không đổi), trong khi lệnh adox sử dụng cờ OF để thực hiện và thực hiện (để lại cờ CF không thay đổi) .

liên quan:

What is the difference between the ADC and ADCX instructions on ia32/ia64?

+0

Tôi không biết về bài báo này, cảm ơn rất nhiều! – Kayjukh

Các vấn đề liên quan