Hầu hết các trình biên dịch thực hiện các thao tác trên các toán hạng 64 bit (ví dụ: int dài) trong môi trường 32 bit như thế nào? nói cách khác, có cách nào để thực hiện các hoạt động này trong một bước duy nhất hay chúng ta cần truy cập nhiều vị trí bộ nhớ để thực hiện các hoạt động này?Hoạt động trên 64 bit hoạt động trong kiến trúc 32 bit?
Trả lời
Chúng sử dụng hai thanh ghi để giữ giá trị 64 bit. Một cho 32 bit thấp hơn và một cho 32 bit trên.
Đối với x86, 64-bit Addition/trừ được thực hiện sử dụng add-với-carry và trừ-với-mượn hướng dẫn:
add %eax, (lower 32-bits of operand)
adc %edx, (upper 32-bits of operand)
64-bit nhân là phức tạp hơn nhiều, nhưng cũng thực hiện bằng cách sử dụng kết hợp các hệ số nhân 32 bit và các hướng dẫn bổ sung 32-bit. (theo cách tương tự như phép nhân dài với 2 chữ số)
Đối với tải và cửa hàng, có, hai giá trị 32 bit cần được tải/lưu trữ vào/từ hai thanh ghi.
Tương tự, các số nguyên 128 bit có thể được triển khai trên phần cứng 64 bit. GCC hỗ trợ điều này như là một phần mở rộng.
Điều gì về số nguyên 128 bit trên phần cứng 32-bit (x86)? –
Nó trở nên xấu xí. Tại thời điểm này nó không phải là quá khác nhau từ số học đa chính xác. Ngoài ra, bạn sẽ được chuỗi 3 lệnh 'adc'. (Đừng quên bạn có một sự phụ thuộc vào cờ mang cờ có thể giết đường dẫn của bạn ...) Đối với phép nhân, bạn phải thực hiện 16 x 32-bit multiplies và một bó 'add' và' adc'. .. Tôi không biết bất kỳ trình biên dịch hỗ trợ này. – Mysticial
- 1. Microsoft.Office.Interop.Excel không hoạt động trên 64 bit
- 2. Tại sao __sync_add_and_fetch hoạt động với biến 64 bit trên hệ thống 32 bit?
- 3. C# - không phù hợp toán kết quả hoạt động trên 32-bit và 64-bit
- 4. 32 bit int * 32 bit int = 64 bit int?
- 5. 32 bit và 64 bit có thể hoạt động cùng nhau không?
- 6. Java 64 bit có hoạt động tốt hơn phiên bản 32 bit không?
- 7. FindNextFile không hoạt động trên Windows 64 bit?
- 8. Eclipse 32 bit chạy trên 64 bit JVM
- 9. Xác định kiến trúc JRE 32 bit so với 64 bit
- 10. Làm thế nào để viết một std :: bitset mẫu hoạt động trên 32 và 64-bit
- 11. chạy nhị phân 32 bit trên máy 64 bit
- 12. Chạy dll 32 bit trên máy 64 bit trong java
- 13. Ứng dụng 32 bit hoặc 64 bit trên hệ điều hành 64 bit?
- 14. Hệ điều hành iPhone 64 bit hay 32 bit?
- 15. Java JDK 32 bit và 64 bit
- 16. Kích thước của cấu trúc trên 32 bit và 64 bit
- 17. Xác định cấu trúc 32/64 bit trong assembly
- 18. Hiệu suất dấu phẩy động 32 bit so với 64 bit
- 19. Biên dịch 32 bit Assembler trên 64 bit ubuntu
- 20. QtCreator trên linux: 32 bit so với 64 bit
- 21. Tại sao valgrind giới hạn ở 32 Gb trên kiến trúc 64 bit?
- 22. SDK Android 32 bit hoặc 64 bit trên hệ điều hành Windows 64 bit?
- 23. nguyên tử trong 32/64 bit
- 24. .net InstallUtil utility - 32 bit vs 64 bit
- 25. Chuyển đổi 32 bit dll sang 64 bit dll
- 26. Hoạt động bitwise 48 bit trong Javascript?
- 27. Bluecove có hoạt động với Linux 64 bit không?
- 28. Lỗi AJAX ASP.NET AJAX/32-bit đến 64-bit
- 29. Tạo 32 bit JavaFX Native Bundle trong máy 64 bit
- 30. Nhập 32 bit dll trong 64 bit .Net application
hoặc nhiều thanh ghi thay vì –