Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
597
Tıklama
0
Öne Çıkarma
assembly acil yardım.
E
20 yıl
Onbaşı
Konu Sahibi

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...



L
20 yıl
Yüzbaşı

iyide bunlar lcd demi gözükecek detaylı bilgi versene biraz.


Bu mesaja 1 cevap geldi.
E
20 yıl
Onbaşı
Konu Sahibi

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...


Bu mesaja 1 cevap geldi.
B
20 yıl
Teğmen

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


Bu mesaja 1 cevap geldi.
E
20 yıl
Onbaşı
Konu Sahibi

hocam sağol ingilizcem var kitabı bulup araştıracak kadar vaktim kalmadı ama yinede teşekkürler.


Bu mesaja 1 cevap geldi.
E
20 yıl
Onbaşı
Konu Sahibi

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



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.