«assembly» etiketlenmiş sorular

Montaj dili (asm) programlama soruları. Ayrıca, kullandığınız işlemci ve / veya talimat setinin yanı sıra montajcı ile ETİKET ETMEYİNİZDEN EMİN OLUN. UYARI: .NET derlemeleri için bunun yerine [.net-assembly] etiketini kullanın. Java ASM için, [java-bytecode-asm] etiketini kullanın.

12
GCC neden * a * a * a * a * a - (a * a * a) * (a * a * a) 'yı optimize etmiyor?
Bilimsel bir uygulama üzerinde bazı sayısal optimizasyonlar yapıyorum. Fark ettiğim bir şey, GCC'nin çağrıyı pow(a,2)derleyerek optimize edeceğidir a*a, ancak çağrı pow(a,6)optimize edilmemiştir ve aslında kütüphane işlevini çağıracaktır pow, bu da performansı büyük ölçüde yavaşlatır. (Buna karşılık, çalıştırılabilir Intel C ++ Derleyicisiicc kitaplık çağrısını ortadan kaldıracaktır pow(a,6).) Ne hakkında merak ediyorum …

14
<= 'Den daha hızlı mı?
Mı if( a &lt; 901 )daha hızlı if( a &lt;= 900 ). Bu basit örnekte olduğu gibi değil, ancak döngü karmaşık kodunda küçük performans değişiklikleri var. Bu bile doğru olması durumunda üretilen makine kodu ile bir şeyler yapmak zorunda olduğunu düşünüyorum.

10
32 bit döngü sayacının 64 bit ile değiştirilmesi, Intel CPU'larda _mm_popcnt_u64 ile çılgın performans sapmaları sunar
popcountBüyük veri dizilerine giden en hızlı yolu arıyordum . Ben karşılaştı çok garip bir etkisi: den döngü değişkeni değiştirme unsignediçin uint64_tbenim PC'de% 50 tarafından yapılan performans düşüşü. Kıyaslamak #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr &lt;&lt; …




30
Montaj ne zaman C'den daha hızlıdır?
Montajcıyı tanımak için belirtilen nedenlerden biri, bazen, bu kodu daha yüksek seviyeli bir dilde, özellikle C olarak yazmaktan daha performanslı olacak kod yazmak için kullanılabilmesidir. Bununla birlikte, birçok kez, tamamen yanlış olmasa da, montajcının aslında daha fazla performans kodu üretmek için kullanılabileceği durumların hem son derece nadir olduğunu hem de …
475 c  performance  assembly 


4
Bitişik girişlerdeki Java anahtarı neden ek vakalarla daha hızlı çalışıyor gibi görünüyor?
Ana program mantığımda birçok noktada çağrılan sıcak işlevlerde çalışacağı için son derece optimize edilmesi gereken bazı Java kodları üzerinde çalışıyorum. Bu kodun bir kısmı, doubledeğişkenlerin 10keyfi negatif olmayanlara yükseltilmiş olarak çarpılmasını içerirint exponent . Bir Kısa yol: çarpılan değer etmektir almak için (düzenleme ancak mümkün olan en hızlı aşağıya Güncelleme …

10
Okunabilir montaj üretmek için GCC mi kullanıyorsunuz?
Kodumun ne derlendiğini görebilmem için makine kodunun anımsatıcı bir versiyonunu dökmek için C kaynak dosyamda GCC'yi nasıl kullanacağımı merak ediyordum . Bunu Java ile yapabilirsiniz, ancak GCC ile bir yol bulamadım. Montajda bir C yöntemini yeniden yazmaya çalışıyorum ve GCC nasıl yaptığını görmek büyük bir yardımcı olacaktır.
256 c  gcc  assembly 

3
Retpolin nedir ve nasıl çalışır?
Kernel veya çapraz işlem bellek açıklamaya (olasılığını azaltmak amacıyla Spectre saldırı), Linux çekirdek 1 yeni seçenekle derlenmiş olacak , -mindirect-branch=thunk-externtanıtıldı gccsözde aracılığıyla dolaylı görüşmeleri gerçekleştirmek için retpoline . Google araması yalnızca çok yeni bir kullanıma (genellikle 2018'de) dönüştüğünden, bu yeni icat edilmiş bir terim gibi görünüyor. Retpoline nedir ve son …

10
Çok çekirdekli montaj dili neye benziyor?
Bir zamanlar, örneğin x86 derleyicisi yazmak için, "EDX kaydını 5 değerine yükleyin", "EDX artışını artırın" kaydını vb. Belirten talimatlarınız olacaktır. 4 çekirdeğe (veya daha fazlasına) sahip modern CPU'larla, makine kodu düzeyinde sadece 4 ayrı CPU varmış gibi görünüyor (yani sadece 4 farklı "EDX" kaydı var mı?) Eğer öyleyse, "EDX kaydını …
243 assembly  x86  cpu  multicore  smp 

12
'Geçiş', 'if' değerinden daha mı hızlı?
Bir switchifade aslında bir ifadeden daha mı hızlıdır if? Aşağıdaki kodu /Oxbayrağı ile Visual Studio 2010'un x64 C ++ derleyicisi üzerinde koştu : #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = …


16
Bir Windows .exe dosyasını "kaynak koda dönüştürmek" mümkün müdür? Ya da en azından Meclise bakalım mı?
Bir arkadaşım Facebook'tan bazı kötü amaçlı yazılımlar indirdi ve kendime bulaşmadan ne yaptığını merak ediyorum. Gerçekten bir .exe koda olamaz biliyorum, ama en azından Meclis görüntüleyebilir veya bir hata ayıklayıcı ekleyebilir miyim? .NET yürütülebilir, CLI üstbilgisi olmadığını söylemek için düzenleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.