Şimdi Ara

assembly acil yardım.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
590
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar öncelikle aranızda olmaktan büyük bir mutluluk duydugumu belirtmeliyim.

    Ben mikroişlemciler dersini almaktayım ve hocanın anlattığı şeylerden birşey anlamadım. ve bir de bu yetmez gibi ödev verdi.içinden çıkamadığım bir iki soru oldu eğer bu soruların çözümünde bana yardımcı olabilirseniz çok sevinirim.Sorular;

    1-) Kullanıcıdan bir dizin girmesi istenecek(örneğin ; Bugün hava çok güzel)Girilen dizindeki kelimeler ekrana ters sırada hepsi büyük harf olacak şekilde yazılacak(GÜZEL ÇOK HAVA BUGÜN) ve kullanıcıdan tekrar deneyip denemeyeceği sorulacak eğer tekrar denemek isterse program tekrar çalışacak istemezse sonlandırılacak.

    2-) hassas bölme
    kullanıcıdan sayı ve bölen ve bölme hasssiyeti(3-50 basamak arasında) istenecek sonuç istenilen hassasiyette ekrana yazılacak.örneğin;

    Bölünecek sayıyı giriniz: 10
    Bölen sayıyı giriniz: 3
    Bölme hassasiyetini giriniz(3-50 arası): 4

    sonuç olarak ekrana

    Bölüm : 3.3333

    yazılacak .

    Eğer bu konuda bana acil olarak yardımcı olabilirseniz sevinirim. ödevi 22/05/2005 tarihine kadar teslim etmem lazım...







  • iyide bunlar lcd demi gözükecek detaylı bilgi versene biraz.
  • yok lcd'yle falan işim yok sadece assembly'de yazılacak ben bunu x.asm olarak kaydedip masm'da derledikten sonra çalışacak.örneğin aşagıdaki örnek gibi tanımlamalar yapılıp sadece komutlar yazılacak.

    .model small
    .stack 100h
    .data
    mesaj db"4 basamaklı bir sayı giriniz"
    sayac=($-mesaj)
    .code
    ana proc
    call ys
    call mesajyaz
    call desimalgir
    call ys
    call desimaltersyaz
    call ys
    mov ax,4c00h
    int 21h
    ana endp
    ys proc
    push ax
    push dx
    mov ah,2
    mov dl,0dh
    int 21h
    mov dl,0ah
    int 21h
    pop dx
    pop ax
    ret
    ys endp
    mesajyaz proc
    push ax
    push dx
    mov cx,sayac
    lea si,mesaj
    dongu:
    mov dl,[si]
    mov ah,2
    int 21h
    inc si
    loop dongu
    pop dx
    pop ax
    ret
    mesajyaz endp
    desimalgir proc
    push ax
    push cx
    push dx
    mov cx,4
    mov bx,0
    tekrar:
    mov ah,10h
    int 16h
    cmp al,30h
    jb tekrar
    cmp al,39h
    ja tekrar
    mov dl,al
    mov ah,2
    int 21h
    mov ah,0
    add al,0
    aaa
    push cx
    mov cl,4
    shl bx,cl
    pop cx
    and al,00001111b
    or bl,al
    loop tekrar
    pop dx
    pop cx
    pop ax
    ret
    desimalgir endp
    desimaltersyaz proc
    push ax
    push bx
    push cx
    push dx
    mov cx,4
    tekrar2:
    mov al,bl
    and al,00001111b
    add al,30h
    mov dl,al
    mov ah,2
    int 21h
    push cx
    mov cl,4
    ror bx,cl
    pop cx
    loop tekrar2
    pop dx
    pop cx
    pop bx
    pop ax
    ret
    desimaltersyaz endp
    end ana

    sanırım bu açıklama yeterli olacaktır.teşekkürler...




  • Ben de bu dönem benzer bir çok program yazdım ancak internet üzerinden açıklamak oldukça zor. Programların oldugu disketi de bulabilecegimi sanmıyorum, çoktan verildi gitti ödev-lab olarak.
    Ancak eger ingilizcen varsa sana Mazidi'nin kitabını öneriyorum bu konularda birçok bilgi (ASCII çevrimi, bölme işlemleri vs.) ve örnek kodlar var. E-mule'dan "Mazidi" ve döküman olarak aratırsan bulabilirsin sanırım. Kitabın ismi "x86 Family microprocessors assembly ..." gibi bişey. Kolay gelsin
  • hocam sağol ingilizcem var kitabı bulup araştıracak kadar vaktim kalmadı ama yinede teşekkürler.
  • sorulardan 1.hallettim ama 2.sinde takıldım 2.sorunun kodlarını yolluyurum eğer bugün saat 00:00 'kadar düzeltmesini yapabilirseniz sevinirim çok uğraştım ama içinden çıkamadım.

    .model small
    .stack 100h
    .data

    mesaj db '0-Bolunecek sayiyi Giriniz:'
    sayac=($-mesaj)
    dizin db 4 dup(?)
    boyut=4

    mesaj1 db '0-Bolen sayiyi Giriniz:'
    sayac1=($-mesaj1)
    dizin1 db 4 dup(?)
    boyut1=4

    mesaj2 db '--Bolum:'
    sayac2=($-mesaj2)
    dizin2 dw 4 dup(?)
    boyut2=4

    .code

    ana proc
    mov ax, @data
    mov ds, ax
    call yenisatir
    call bolunen
    call dizingir
    call yenisatir
    call bolen
    call dizingir1
    call yenisatir
    call bolum
    Call sonuc
    mov ax, 4C00h
    int 21h
    ana endp

    bolunen proc
    push ax
    push dx
    mov cx, sayac
    mov si, offset mesaj
    yaz:
    mov dl, [si]
    mov ah, 2h
    int 21h
    inc si
    loop yaz
    pop dx
    pop ax
    ret
    bolunen endp

    bolen proc
    push ax
    push dx
    mov cx, sayac1
    mov si, offset mesaj1
    yaz1:
    mov dl, [si]
    mov ah, 2h
    int 21h
    inc si
    loop yaz1
    pop dx
    pop ax
    ret
    bolen endp

    bolum proc
    push ax
    push dx
    mov cx, sayac2
    mov si, offset mesaj2
    yaz2:
    mov dl, [si]
    mov ah, 2h
    int 21h
    inc si
    loop yaz2
    pop dx
    pop ax
    ret
    bolum endp

    yenisatir proc
    push ax
    push dx
    mov ah, 2
    mov dl, 0dh
    int 21h
    mov dl, 0ah
    int 21h
    pop dx
    pop ax
    ret
    yenisatir endp

    dizingir proc
    push ax
    mov ah, 1
    mov si, offset dizin
    mov [si], 20h
    inc si
    mov cx, boyut

    harfal:
    int 21h
    mov [si], al
    inc si
    loop harfal
    mov dx,ax
    pop ax
    ret
    dizingir endp

    dizingir1 proc
    push ax
    mov ah, 1
    mov si, offset dizin1
    mov [si], 20h
    inc si
    mov cx, boyut1
    dec cx
    harfal1:
    int 21h
    mov [si], al
    inc si
    loop harfal1
    mov cx,ax
    pop ax
    ret
    dizingir1 endp


    sonuc proc

    mov ax,dx
    mov dx,0
    div cx
    mov cx,4
    ekranayaz:
    mov si,offset ax
    mov dl,[si]
    mov ah,2
    int 21h
    inc si
    loop ekranayaz
    pop cx
    sonuc endp

    end ana




  • Yapay Zeka’dan İlgili Konular
    Acil Yardım...
    18 yıl önce açıldı
    Acil Yardım!!
    12 yıl önce açıldı
    acil yardım
    4 ay önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.