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 >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.