assembly etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
assembly etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

15 Haziran 2017 Perşembe

Assembly Örnekler 11 | Cmps Komutu

Assembly Örnekler serimizin 11.  örneği assembly dili ile cmps komutunu göreceğiz.

data segment
   
    string1 db "Oguzhan"
    string2 db "Cevik"
    string3 db "Esit$"
    string4 db "EsitDegil$"
   
   
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
   
    ;rep cx kaydedicisinin degerini bir azaltir demistik
    ;repe fonksiyonu ise esitse bir azalt demektir.
    ;repne esit degilse azalt fonksiyonudur.
    ;cmpsb ise stringleri byte seklinde karsilastirir
    ;je kosul ifadesi esitse anlami tasir
    ;jmp sartsiz dallanma komutumuz
   
   
   
   
    lea si,string1 ;
    lea di,string2 ;bu iki yerde stringlerin adreslerini index registerlere atiyoruz
    mov cx,7
    repe cmpsb    ;byte seklinde esitmi diye karsilastiriyor
    je esit       ;esitse kosulu saglanirsa esit etiketine dallanma yapilacak
   
   
    ;bu kisim ekrana yazi yazdirma komutu. Burada esit degil yazisi yazacak!
    mov ah,09
    lea dx,string4
    int 21h
   
   
   
    jmp son ;burasi sartsiz dallanma komutudur.Sayi esit olmadiginda bidaha esit diye yazmasin
            ;diye buraya sartsiz dallanma yaptik.
   
    esit:
    mov ah,09
    lea dx,string3
    int 21h
   
    son:
   
    mov ax, 4c00h ; exit to operating system.
    int 21h  
ends

end start ; set entry point and stop the assembler.

Assembly Örnekler 10 | Mov Komutu

Assembly Örnekler serimizin 10.  örneği assembly dili ile movs komutunu göreceğiz.

data segment
string1 db "OguzhanCevik"
string2 db 12 dup(?)                     

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, @data
    mov ds, ax
    mov es,ax
    
    ;cld komutu sitringin soldan saga dogru kopyalar 
    ;stf komutu sitringin sağdan sola doğru kopyalar
    ;cx dongu kaydedicisinin icerigini bir bir azaltir
    
    lea si,string1
    lea di,string2
    mov cx,12
    rep movsb;burada movsb byte seklinde kopyalar
             ;movsw ise 2byte seklinde kopyalar.   
                                                    
   
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

10 Haziran 2017 Cumartesi

Assembly Örnekler 9 | Temel String Komutları

Assembly Örnekler serimizin dokuzuncu örneği assembly dili ile şartlı prosedür oluşturmayı göreceğiz.

data segment                     

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    
    
    ;bu projede string islemler yapacagiz
    ;movs komutu string2 icindeki veriyi string1'e atar
    ;cmps iki sirting degiskenini karsilastirir
    ;scas komutu al registeri icindeki karakter ile stringimizi kiyaslama yapar
    ;loads komutu stringimizin karakterini al registerina kopyaliyor
    ;stos komutu al registerindeki karakteri stringimize kopyaliyor
    
    ;string islemlerinde kaynak ve hedef islemleri olacagindan
    ;si ve di register'larini kullaniyoruz
    
                       

    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

Assembly Örnekler 8 | Prosedür Oluşturma

Assembly Örnekler serimizin sekizinci örneği assembly dili ile şartlı prosedür oluşturmayı göreceğiz.

data segment

sonuc dw ?                        

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax  
    
    ;   prosedur olusturma ornegi
    
    mov ax,5
    mov bx,3
    call topla
    mov sonuc,ax ;  prosedurdeki degeri sonuc degiskenine attik
    
    topla proc
        add ax,bx
        ret
        topla endp
    
   

    mov ax, 4c00h ; exit to operating sys
    int 21h    
ends

end start ; set entry point and stop the assembler.

8 Haziran 2017 Perşembe

Assembly Örnekler 7 | Interrupt Kesme

Assembly Örnekler serimizin yedinci örneği assembly dili ile şartlı interrupt kesme oluşturmayı göreceğiz.

data segment

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    
    
    ; interrupt kesme islemleri dx registeri ile gerceklestirilir
    
    mov ah,01
    int 21h
       

Assembly Örnekler 6 | Şartlı ve Şartsız Dallanma

Assembly Örnekler serimizin altıncı örneği assembly dili ile şartlı v şartsız dallanmayı göreceğiz.

data segment


ends

stack segment
    dw   128  dup(0)
ends

code segment
start:


    mov ax, data
    mov ds, ax 
    
    
    ; cmp komutu karsilastirma yapar cmp ax,bx sub komutu gibi ax'i bx'den cikarir
    ; ama degeri ax'e atamak yerine bu sonucu karsilastirir.
    ; sartli dallanma ve sartsiz dallanmada cmp fonk. kullanabiliriz.
    ; jmp ise sartsiz dallanma komutudur. Hicbir sarta bakmadan 
    ; programda dallanma olur.
    
    ;   ja  buyukse komutu
    ;   jb  kucukse komutu
    ;   jae buyuk esitse
    ;   jbe kucuk esitse
    ;   jna buyuk degilse
    ;   jnb kucuk degilse
    ;   jnae    buyukesit degilse
    ;   jnbe    kucukesit degilse
    ;   jz  zero flag aktifse "BAYRAKLARIDA KOSUL OLARAK KULLANABILIRIZ       
    
    

28 Mayıs 2017 Pazar

Assembly Örnekler 5 | Loop (Döngü) Kurma

Assembly Örnekler serimizin beşinci örneği assembly dili ile Loop (Döngü) kurmayı göreceğiz.Döngü kurmak için kullanacağımız genel amaçlı CX register (kaydedici) kullanacağız.

data segment


ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:  

    
    ;loop komutu icin cx registeri kullaniyoruz
    
    ;bir artirma inc fonksiyonu ile yapilir
    
    ;bir azaltma dec fonksiyonu ile yapilir
    
    
    mov ax, data
    mov ds, ax
    
    mov cx,10
    mov ax,0h
    dongu:
    inc ax
    loop dongu

    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends


end start ; set entry point and stop the assembler.

Assembly Örnekler 4 | Sub Komutu

Assembly Örnekler serimizin dördüncü örneği assembly dili ile Sub komutunu göreceğiz. Sub komutu çıkarma işlemi yapıyor.

data segment
    
degisken dw 7    

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:

    mov ax, data
    mov ds, ax   
                  
    mov ax,5h
    sub ax,3h
    sub degisken,ax              
                  
    
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends


end start ; set entry point and stop the assembler.

Assembly Örnekler 3 | Mul ve Div Komutları

Assembly Örnekler serimizin üçüncü örneği assembly dili ile Mul ve Div komutlarını göreceğiz. Mul komutu çarpma işlemi yaparken Div komutumuz bölme işlemi yapıyor.

; multi-segment executable file template.

data segment

a db 2
sonuc dw ?
sonuc2 db ?
kalan dw ?                          

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    
    ; çcarma isleminde ax registerini kullaniyoruz
    mov ax,2h
    mov bx,2h
    mul bx
    
    mov ax,5h
    mul a 
    mov sonuc,ax  
    
    
    ; bolme islemindede ax registerini kullaniyoruz
    mov ax,2h
    mov bx,2h
    div bx 
    

27 Mayıs 2017 Cumartesi

Assembly Örnekler 2 | Add Komutu

Assembly Örnekler serimizin ilk örneği assembly dili ile değişken tanımlama ve çok kullanacağımız mov komutunu göreceğiz.

data segment
a dw 8
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax,@data
mov ds,ax
mov ax,5h
add ax,10h

24 Mayıs 2017 Çarşamba

Assembly Örnekler 1 | Değişken Tanımlama ve Mov Komutu

Assembly Örnekler serimizin ilk örneği assembly dili ile değişken tanımlama ve çok kullanacağımız mov komutunu göreceğiz.

data segment 

a db 2,8,7  ; db (define bayt) yada dw kullanilir

;data segmentte degisken tanimlama dizi ornegin 
;a dw 5 dup(?)   seklinde tanimlanir    
; a dw ? bu sekildede tanimlama mevcut
; dizi db "merhaba assembly"

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:                    

    mov ax, @data
    mov ds, ax