Çoğu derleyici, 32 bit ortamlarda 64 bit işlenen (örneğin uzun int) işlemlerini nasıl gerçekleştirir? Diğer bir deyişle, bu işlemleri tek bir adımda uygulamak için bir yol var mı yoksa bu işlemleri gerçekleştirmek için birden fazla bellek konumuna erişmemiz gerekiyor mu?32 bit mimarilerde 64 bit işlenen üzerinde işlemler?
cevap
64-bit bir değer tutmak için iki yazmaç kullanırlar. Alt 32-bit ve bir üst 32-bit için bir tane. x86 için
, 64 bit Toplama/çıkarma kullanılarak yapılır ile-carry-ekleme ve çıkarma-ile-ödünç talimatları:
add %eax, (lower 32-bits of operand)
adc %edx, (upper 32-bits of operand)
64-bit çarpma çok daha karmaşıktır, ama aynı zamanda bir kullanılarak yapılır 32-bit çarpanları ve 32-bit eklenti-taşıma talimatlarının kombinasyonu. yükler ve mağazalarda
(2 basamak uzun çarpma benzer bir şekilde) evet, iki 32-bit değerleri/yüklü iki katmanda üzerine/içine saklanması gerekir.
Benzer şekilde, 128-bit tamsayı 64 bit donanım üzerinde uygulanabilir. GCC bunu bir uzantı olarak destekler.
Ne 32 bit (x86) donanım üzerinde 128 bitlik tamsayılar hakkında? –
Çirkinleşiyor. Bu noktada çok hassas aritmetikten çok farklı değil. Ek olarak, 3 'adc' talimatlarını zincirlersiniz. (boru hattınızı öldürebilecek taşıma gemisine bağımlı olduğunuzu unutmayın ...) Çarpma için, 16 x 32-bit çarpanları ve bir demet “add” ve “adc” yapmak zorundasınız. .. Bunu destekleyen herhangi bir derleyicinin farkında değilim. – Mysticial
- 1. Her zaman 32 bit ve 64 bit makinede 64 bit
- 2. 64 bit mimarilerde valgrind neden 32 Gb ile sınırlıdır?
- 3. 64-bit Windows'da 32 ve 64 bit birlikte çalışabilirlik
- 4. Tek 32/64 bit sürücüleri
- 5. Tensor 32-bit Linux üzerinde?
- 6. Bağlantı Noktası 32-Bit 64-Bit Windows sürücüsü Windows
- 7. Intellij idea 32 bit vs 64 bit hız ve performans
- 8. Garip ASP.NET AJAX Hata/32 bit 64-bit
- 9. 64 bit CentOS sisteminde 32 bit özel Perl için 32 bit XS modülleri nasıl oluştururum?
- 10. 32 bit DLL'lere karşı 64 bit EXE bağlantısı olabilir mi?
- 11. 64 bit Azure Web uygulamasında 32 bit uygulamaları etkinleştirin
- 12. 64 bit işletim sisteminde 32 bit STS kullanmak mümkün mü?
- 13. 64 bit MSBuild 32 bit uzantıları neden yükleniyor?
- 14. 64 bit makinede yakalanan 32 bit işlemin hata ayıklama dökümü
- 15. 32-bit işlemden 64-bit dll'de LoadLibrary çağrısı
- 16. Bir 32 bit programında 64 bit sürücü kullanılması. Windows
- 17. JRE mimarisini belirleme 32 bit vs 64 bit
- 18. 64 bit sistemde 32 bit dll kullanma 0x8007000B Hatası
- 19. 64 bit platformda 32 bit programları derlemek için gcc gç
- 20. 64 bit uygulamadan 32 bit paylaşılan kitaplığı yükleyin?
- 21. 64-bit bir makinede 32-bit C# uygulaması çalıştırılıyor
- 22. Nasıl 32 bit C# uygulaması bir 64 bit DLL kullanabiliyor
- 23. 64 bit ortamda 32 bit OS X ikili dosyalarını derleme
- 24. Montajda 32/64 bit mimariyi belirle
- 25. Bir uygulamanın 32 veya 64 bit sürümünü,
- 26. 64 bit üzerinde uint32_t hizalaması?
- 27. x86 128 bit atomik işlemler
- 28. Windows 64 bit üzerinde cmake nasıl kurulur
- 29. 64-bit pencere montajcısı
- 30. SWT, Windows 64 bit
veya çoklu kayıtları doğrusu –