EYLÜL_PC_SHOP
Would you like to react to this message? Create an account in a few clicks or log in to continue.

EYLÜL_PC_SHOP

EYLÜL_PC_SHOP
 
AnasayfaAnasayfa  Latest imagesLatest images  AramaArama  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 Temel Assembly Komutları

Aşağa gitmek 
YazarMesaj
Admin
Admin



Mesaj Sayısı : 99
Kayıt tarihi : 29/12/08

Temel Assembly Komutları Empty
MesajKonu: Temel Assembly Komutları   Temel Assembly Komutları EmptyPerş. Ocak 01, 2009 8:23 pm

MOV
“Mov” komutu 2 register veya 1 bellek bölgesi ile 1 register arasında byte,word veya dword uzunluğundaki verinin aktarımını sağlar. Önemli olan 2 değişkeninde aynı büyüklükte olmasıdır.
mov alıcı,gönderici

mov eax,edx ;eax=edx
mov ax,cx ;ax=cx
mov dword ptr ds:[esi],eax ;esi tarafından adreslenmiş bellek bölgesine eax’in değerini koy. burada esi belleğin offsetidir. (c’deki pointer gibi)
mov eax,dword ptr ds:[ecx]
mov ecx,123456 ;ecx=12346

mov edx,cx ;Yanlış edx=dword,cx=word
mov si,dword ptr ds:[ebx] ;Yanlış si=word
mov al,byte ptr ds:[ecx] ;Doğru
mov word ptr[edx],word ptr [ecx] ;Yanlış, 2’side bellek bölgesi olamaz.
mov ds,123 ;Yanlış segment registerleri direkt parametre alamazlar. aşağıdaki gibi olmalıdır.
mov ax,123
mov ds,ax

XCHG
“Xchg” komutu 2 register ve bir bellek bölgesini karşılıklı değiştirilmesi için kullanılır.Mov için geçerli olan tüm kurallar bu komut içinde geçerldir.
xchg param1,param2

mov eax,1234 ;eax=12345
mov edx,6789 ;edx=6789
xchg eax,edx ;artık eax=6789 edx=12345

LEA
“Lea” komut verilen bir bellek bölgesinin offsetini hesaplar.Eğer programınını yüzen kod parcaları içermiyorsa kullanmanız gerekmez.Masm32 “offset” macrosu ile kullandığınız değişkenlerin offsetini sabit bir değer olarak elde etmenizi sağlar.
lea alıcı,değişken

lea eax,dword ptr cs:[12345] ;gibi


ADD
“Add” komutu 2 paramterisini toplayıp sonucu ilk parametereye aktarır.(Parametreler mov komutunkilerle aynı özelliktedirler.
add alıcı,gönderici

add eax,1234 ;eax=eax+1234
add ecx,edx ;eax=eax+edx
add eax,dword ptr es:[esi] ;eax=eax+esi ile adrelenen değer.
add dword ptr ds:[2324],edi

SUB
“Sub” komutu add ile aynı özellikleri taşır.Sadece bu komut toplamak yerine çıkartır.
sub alıcı,gönderici

sub eax,1234 ;eax=eax-1234 eğer eax<1234 ise FFFFFFFF-1234
sub edx,edx ;edx=0

MUL
“Mul” komutu eax*parametre işlemini yapar.Sonucun düşük kısmı eax,’e yüksek kısmı ile edx’e aktarılır. Parametre mov komutunda belirtildiği gibidir.
mul çarpan

mov eax,1234 ;eax=1234
sub edx,edx ;edx=0
mov ecx,4 ;ecx=4
mul ecx ;eax=1234*4

DIV
“Div” komutu eax/parametre işlemini yapar eax=bölüm edx=kalan.
div bölen

INC
“Inc” komutu parmetre olarak aldığı değeri 1 artırır.
inc parametre

inc eax
inc dword ptr ds:[edi]
inc word ptr ss:[3443]

DEC
“Dec” ile aynı özelliklere sahiptir.Fakan bu komut 1 artırmak yerine 1 azaltır.
dec parametre

CMP
“Cmp” 2 parametreyi kıyaslar ve eflags registerini duruma göre değiştirir.Bu komut az sonra gelceğimiz “Jump” komut kombinasyonları ile kullanılır.
cmp p1,p2

cmp eax,edx ;eğer eax=edx ise ZF=1
;eax!=edx ise ZF=0
;eax<edx ise CF=1

Jxx Komut seti
“Jxx”(Jump) komutları istenen koşul oluştuğunda verilen parametreyi eip’e aktarırlar.Bir başka değişle programın parametrede verilen noktadan devam etmesini sağlarlar.
Jxx parametre

Jmp: Koşulsuz sıçrama
Je: Eğer zf=1 ise yani cmp’in parametreleri eşit ise
Jb,Jc: Eğer cf=1 ise yani cmp’de p1<p2 ise
Ja: Eğer cmp’de p1>p2 ise (cf=0 ve zf=0)
Jbe:p1<=p2 ise (cf=1 veya zf=1)
Jnb: p1=>p2 ise (cf=0)
Jnz,Jne: p1<>p2 ise (zf=0)
Jmp eax ;gibi
Jnb dword ptr[edi] ;gibi
Sayfa başına dön Aşağa gitmek
http://fetle.yetkinforum.com
 
Temel Assembly Komutları
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Assembly Nedir?
» Assembly bize ne sağlar
» Assembly Programlama Dili
» Temel Sayı Tipleri:
» Temel CPU Register’leri

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
EYLÜL_PC_SHOP :: Programlama :: Assembly-
Buraya geçin: