Şimdi Ara

Assembly Dilinde Basit Bir Örnek Yardımı Lazım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
903
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Assembly de kullanıcı tarafından girilen metni ters çevirip yazdıran bir örnek lazım. Bilen varsa yazabilir mi ? Teşekkürler..



  • Saolun beyler.

  • < Bu ileti mobil sürüm kullanılarak atıldı >
  • Direkt kod yazmayacağım. Bu öğrenmeni engeller.
    Birçok farlı yöntemi vardır. Ama genelde en yaygın 2 yol kullanılır.

    1. Dizi yöntemi

    Kaynak dizi segment adresini DS registerine hedef dizi segment adresini ES registerine yükle.
    Kaynak ve hedef offset adreslerini SI ve DI registerlerine yükle.
    Dizi boyunu CX registerine yükle. DI içeriğini CX kadar artır.
    Loop döngüsü kur.
    Döngü içinde SI ile oku DI ile yaz. SI değerini artırırken DI değerini azalt.

    2. Yığıt (stack) yöntemi.

    Kaynak segment ve offset adreseliri DS ve SI registerine yükle
    Dizi boyunu CX registerine yükle
    Loop döngüsü kur
    SI ile okuyup yığıta Push et. SI değerini artır.
    Hedef segment ve offset adreseliri DS ve SI registerine yükle
    Dizi boyunu CX registerine yükle
    Loop döngüsü kur
    Yığıttan pop edip SI ile yaz. SI değerini artır.


    32 bit için ESI,EDI,ECX gibi register isimleri kullanılır.
    64 için R ile olur. (bunda segment kullanımı biraz farklıdır)



    < Bu mesaj bu kişi tarafından değiştirildi melikulupinar -- 11 Haziran 2018; 18:57:3 >




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.