Yön işaretinin x86
içinde nasıl çalıştığını anlayamıyorum. derslerimde metni artışlarla veya eksilme kaynak veya hedef kayıt ama bu onun adıyla mantıklı değil söylüyorlar. Birisi ne yaptığını açıklayabilir mi?x86 içinde Yön Bayrağı
cevap
Bu bayrak, dizgi işlemlerinde kullanılır ve dizelerin düşük bir adreste başlayıp başlamadığını ve daha yüksek adreslere mi devam ettiğini yoksa tersini belirtir. dize talimatları için
, ECX
DS:ESI
kaynak adresi vardır ve ES:EDI
hedef (dolayısıyla sESI
ve d EDI
içinde) sahip olmasıdır, yineleme sayısına sahiptir. Her bir yinelemede sonra
ECX
ya artan veya
EFLAGS.DF
göre (bayt işlemleri, kelime işlemleri vs için 2 1) eleman boyutu ile azaltılmakta bir ve
ESI
ve
EDI
azaltılır.
EFLAGS.DF
Eğer aksi takdirde indirildiği konum, 0
, ESI
ve EDI
artırılır olduğunu.
Yön işaretine bağlı bir yönerge örneğindeki gibi rep movsb
alalım.
rep movsb
'u yaptığınızda, esi
adresinde bir kaynak adresi, edi
adresinde bir hedef adresi ve ecx
olarak sayılır. İşlemci temelde bir döngü yürütür. Normal durumda (yönlendirme bayrağı temiz olduğunda), döngünün her yinelemesi esi
ve edi
'u artırır, böylece bunları kopyaladığınız kaynak ve hedef bloklarının başına işaret edecek şekilde başlatırsınız. REP MOVSB
yürütülürken, işlemci kopyalanan bloğun sonuna ulaşana kadar kaynak ve hedef adreslerini artırır.
Yön bayrağı ayarlandığında, işlemci yerine yazmaçlarını azaltır. Bu, kopyalamakta olduğunuz bellek bloğunun son işaretini gösteren onlarla başlamanız gerektiği anlamına gelir. Baştan başlayıp, sonuna kadar kopyalamak yerine, baştan başlar ve baştan sona gelene kadar geriye doğru kopyalar.
- 1. Curl -H bayrağı php içinde
- 2. -V bayrağı ve -A bayrağı grep içinde birleştiriliyor
- 3. Android-x86 içinde C2DM kullanın
- 4. Montajlı gdb: Taşıma bayrağı yazdırma durumu
- 5. Yön Vektör
- 6. x86 Yapı LibVLC for x86
- 7. Çıkarma bayrağı
- 8. Liste görünümü sırala XAML içinde Özellik/Yön sadece
- 9. jQuery.scrollLeft() yön yön rtl olduğunda - farklı tarayıcılarda farklı değerler
- 10. StackOverflowException; x86
- 11. Looping x86
- 12. Uygun yön/MySQL
- 13. android + phonegap yön sorunu
- 14. JQuery ile boole bayrağı ayarlama
- 15. Alternatif --experimental-modülleri bayrağı
- 16. Kabuk betiğinin -x bayrağı
- 17. NSIS Yükleyici Hata Bayrağı
- 18. Web Bileşenleri hazır bayrağı
- 19. gcc derleyici bayrağı?
- 20. Xcode Project-derleyici bayrağı
- 21. UIScrollView için yön kilidini nasıl etkinleştiririm?
- 22. iframe'de yön değiştirme yönünü değiştirme
- 23. R ben yön var işareti
- 24. Parçaları değiştirme ve yön değiştirme
- 25. Yön değiştirirken Xml düzeni değişiyor
- 26. Yön İşaretçisi vs Program Sayacı?
- 27. Yüz yön işareti etiketleme aracı
- 28. Uzun ve kısa atlama (x86) arasındaki fark (x86)
- 29. Windows XP x86 denetlendi?
- 30. x86 Montaj Referans Sayfası
Bu nedenle dizeyi buna göre artırır veya azaltır. Bir dize daha düşük bir adresle başlıyorsa, ona eklenir veya diğer durumda tersi yapılır, değil mi? –
dizinin içindeki ** işaretçiyi ** arttırır veya azaltır. –
Nathan Fellman, @Jerry Coffin, varsayılan davranışın bir bellek bloğunun başından kopyalanması olduğunu düşünüyorum (DF temizlendi). Hangi durumlarda sonunda bir bellek bloğu kopyalamak ister (DF set)? – golem