Assembly Ders Notları
GENEL AMAÇLI TRANSFER KOMUTLARI
Mov Komutu
Bir byte veya bir Word uzunluklu bilgilerin 2 register arasında yada bir bellek bölgesiyle bir register arasında transfer edilmesini sağlar
Genel Formu: MOV alıcı,gönderici
Alıcı Alan Operand Tipi ↓ |
Gönderici Alan Operand Tipi |
||
Register |
Bellek Bölgesi |
Sabit |
|
Register |
● |
● |
● |
Bellek Bölgesi |
● |
◙ |
▬ |
Bir register ile başka bir register arasında bilgi transferi yapılırken alıcı alan olarak kullanılan register gönderici alan olarak kullanılan registerdan mutlaka büyük yada eşit olmak zorundadır.
Segment registerları arasında bilgi transferi doğrudan yapılamaz, arada geçici bir regisyer kullanmak gerekir. Yani 2 segment registeri arasında bilgi transferi dolaylı yoldan yapılır.
Bir data registerlarına sabit bir değer aktarılmak istenildiğinde alıcı alan olarak kullanılan registerın sabit değerin büyüklüğünden büyük ya da eşit olması gerekir.
Bir bellek bölgesine bir data registerdan veri aktarmak istenildiğinde bellek bölgesi üzerinde herhangi bir düzenleme işlemi yapılmaz.
Bir bellek bölgesinden başka bir bellek bölgesine veri transfer yapılmak istenildiğinde bu işlem arada geçici bir register kullanarak (dolaylı yoldan) yapılır.
Bir bellek bölgesine sabit bir değer aktarılmak istenildiğinde alıcı alan olarak kullanılan bellek bölgesinin düzenlenmesi gerekir. Bellek bölgesine aktarılacak sabit byte uzunluklu ise Byte PTR, aktarılacak değer Word uzunluklu ise Word PTR ön ekini kullanmak gerekir.
Xchg Komutu
2 register arasında yada bir bellek bölgesi ile bir register arasında verilerin karşılıklı olarak değiştirilmesini sağlar
Genel Formu: XCHG opr1,opr2
Xlat Komutu
Bir byte bloğunun (byte dizisinin) istenilen bir elemanına erişmek için xlat komutu kullanılır.
Genel Formu: XLAT
XLAT komutu parametresiz yazılır, fakat bu komut bazı registerları gizlice kullanır. Bu komut çalıştırılmadan önce erişmek istenen byte dizisinin başlangıç adresi BX registerına, dizinin erişilmek istenen elemanının indexi de AL registerına aktarılır. Bu işlemden sonra XLAT komutu çalıştırıldığında BX içerisinde yer alan başlangıç adresinden AL içerisinde yer alan index’e erişilmiş olur ve sonuç yine AL registerına aktarılmış olur.
ADRES TRANSFER KOMUTLARI
LEA Komutu
Bir değişkenin ofset adresini alıcı alan olarak kullanılan registera aktarır.
Genel Formu: LEA alıcı,değişken
LDS Komutu
Lea komutundan farklı olarak değişkenin ofset adresini alıcı alan registerına aktardığı gibi aynı zamanda AX registerının içerisine de değişkenin bulunduğu segmentin adresini aktarır.
Genel Formu: LEA alıcı,değişken
NOT: LDS komutunun icrasından sonra AX registerına aktarılan DS’in başlangıç adresi DS registerına aktarılır.
LES Komutu
LEA komutuna ek olarak değişkenlerin bulunduğu segmentin başlangıç adresini ekstra segment registerına aktarır.
LAHF Komutu
Flag registerının ilk 8 bitini AH registerına aktarmak için kullanılır.
Genel Formu: LAHF
(Flag registerının 1 byte kısmını AH olarak alır)
SAHF Komutu
AH registerının içerisinde bulunan 1 byte’lık değeri flag registerının düşük değerlikli 8 bitine aktarır.
Genel Formu: SAHF
IN / OUT Komutu
İn komutu port no olarak belirtilen bir port’a 1 byte’lık veya 1 Word’lük bilgiyi alarak akümülatör registerına (AX) aktarır. OUT komutu ise AX registerında var olan bir byte’lık veya 1 Word’lük bilginin port no olarak belirtilen port’a gönderilmesini sağlar. İN ve OUT komutları ile gönderilecek bilgi 1 byte’lık ise AL registerını, gönderilecek bilgi 1 Word’lük ise AX registerını kullanılması gerekir.
Genel Formu: IN Akümülatör,Port no
OUT port no,Akümülatör
Hit: 9429
Yazar: serhat8102