«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.



4
Kayıtlar bu kadar hızlıysa, neden daha fazlasına sahip değiliz?
32bit'te 8 "genel amaçlı" yazmacımız vardı. 64bit ile miktar ikiye katlanıyor, ancak 64bit değişikliğinden bağımsız görünüyor. Şimdi, eğer kayıtlar çok hızlıysa (hafıza erişimi yoksa), neden doğal olarak daha fazlası yok? CPU kurucularının CPU'da mümkün olduğunca çok yazmaç çalışması gerekmez mi? Neden sadece sahip olduğumuz miktara sahip olduğumuzun mantıksal kısıtlaması nedir?

7
AT&T ile Karşılaştırıldığında Intel Assembly Sözdiziminin Sınırlamaları [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Cevapların gerçekler, referanslar veya uzmanlıkla desteklenmesini bekliyoruz, ancak bu soru büyük olasılıkla münazara, münakaşalar, anketler veya uzun tartışmalar gerektirecektir. Bu sorunun iyileştirilebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, rehberlik için yardım merkezini ziyaret edin . 8 yıl önce kapalı . Benim …
88 linux  assembly  x86  att  bsd 

3
Belirtilen yürütülebilir dosyanın dışındaki tek adımlı derleme kodunu gdb kullanmak, "geçerli işlevin sınırları bulunamıyor" hatasına neden oluyor
Gdb'nin hedef yürütülebilir dosyasının dışındayım ve bu hedefe karşılık gelen bir yığınım bile yok. Yine de tek adımda yapmak istiyorum, böylece montaj kodumda neler olup bittiğini doğrulayabilirim, çünkü x86 montajında ​​uzman değilim. Ne yazık ki, gdb bu basit derleme düzeyinde hata ayıklamayı yapmayı reddediyor. Uygun kesme noktasını ayarlamama ve durdurmama …


30
Neden montajda program yapıyorsun? [kapalı]
Kapalı . Bu soru fikir temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Bu gönderiyi düzenleyerek gerçeklerle ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 1 yıl önce kapalı . Bu soruyu geliştirin Dışarıdaki tüm düşük seviyeli hackerlara bir sorum var. Bu cümleyle bir blogda karşılaştım. Kaynağın …

2
"Rep;" ne anlama geliyor? nop; ” x86 derlemesinde mi? "Duraklat" talimatı ile aynı mı?
Ne anlama rep; nopgeliyor? pauseTalimatla aynı mı? rep nop(Noktalı virgül olmadan) ile aynı mı ? Basit noptalimattan farkı nedir ? AMD ve Intel işlemcilerde farklı mı davranıyor? (bonus) Bu talimatlar için resmi belgeler nerede? Bu soru için motivasyon Başka bir sorunun yorumlarında biraz tartıştıktan sonra rep; nop;, x86 (veya x86-64) …

4
Bir T * neden kayıt defterine geçirilebilir, ancak unique_ptr <T> yapamaz?
Chandler Carruth'un CppCon 2019'daki konuşmasını izliyorum: Sıfır Maliyetli Soyutlama Yok İçinde, bir std::unique_ptr&lt;int&gt;over a kullanarak ne kadar ek yüke maruz kaldığınıza nasıl şaşırdığını gösteren bir örnek verir int*; bu segment 17:25 zaman noktasında başlar. Örnek snippet çiftinin (godbolt.org) derleme sonuçlarına bir göz atabilirsiniz - gerçekten de, derleyicinin unique_ptr değerini geçmeye …

17
Yığın, assembly dilinde nasıl çalışır?
Şu anda yığının nasıl çalıştığını anlamaya çalışıyorum, bu yüzden kendime bir montaj dili öğretmeye karar verdim , bu kitabı kullanıyorum: http://savannah.nongnu.org/projects/pgubook/ Gas kullanıyorum ve geliştirmemi Linux Mint üzerinde yapıyorum . Kafam biraz karıştı: Bildiğim kadarıyla bir yığın sadece bir veri yapısıdır. Bu yüzden eğer derlemede kodluyorsam yığını kendim uygulamam gerektiğini …

19
CIL nop işlem kodunun amacı nedir?
MSIL'den geçiyorum ve MSIL'de pek çok nop talimatı olduğunu fark ediyorum . MSDN makalesi, herhangi bir işlem yapmadıklarını ve işlem kodu yamalıysa alanı doldurmak için kullanıldığını söylüyor. Hata ayıklama yapılarında sürüm sürümlerinden daha fazla kullanılırlar. Bu tür ifadelerin daha sonraki talimatları hizalamak için derleme dillerinde kullanıldığını biliyorum, ancak MSIL'de neden …
82 assembly  bytecode  cil 

1
Git, derlememi bağlamıyor: tanımsız harici işlev
Çoğunlukla öğrenme amacıyla SIMD yazmaya çalışıyorum. Go'nun derlemeyi bağlayabileceğini biliyorum, ancak düzgün çalışmasını sağlayamıyorum. İşte yapabileceğim en minimal örnek (eleman bazında vektör çarpımı): vec_amd64.s (not: gerçek dosyanın altında bir boşluk satırı vardır, RETaksi takdirde hatalara neden olur) // func mul(v1, v2 Vec4) Vec4 TEXT .mul(SB),4,$0-48 MOVUPS v1+0(FP), X0 MOVUPS v2+16(FP), …
82 assembly  go 


1
X86 talimatları kendi kodlamalarının yanı sıra tüm argümanlarının aynı anda bellekte bulunmasını gerektirir mi?
RAM'i sadece tek bir fiziksel sayfa tarafından desteklenen bir Linux VM çalıştırmanın mümkün olup olmadığını anlamaya çalışıyorum. Bunu simüle etmek için, KVM'deki iç içe sayfa hata işleyicisini, geçerli biti işlenmiş sayfa hatasına karşılık gelen dışında tüm iç içe sayfa tablosu (NPT) girişlerinden kaldırmak üzere değiştirdim. Bir Linux misafirini başlatmaya çalışırken, …

1
Neden bir dizinin GCC toplam başlatması, sıfır olmayan öğeler de dahil olmak üzere her şeyi önce sıfırlarla dolduruyor?
Neden gcc tüm diziyi yalnızca kalan 96 tam sayı yerine sıfırlarla dolduruyor? Sıfır olmayan başlatıcıların tümü dizinin başlangıcındadır. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to materialize a[] in memory instead of …

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.