-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuestion-5.asm
32 lines (24 loc) · 1.16 KB
/
Question-5.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
;2’den 6’ya kadar olan sayilarin faktoriyellerin toplaminin 3’e bolumunden kalan sayiyi bulan bir program yaziniz.
org 100h
mov bx,0
mov sp,7
d: ;d etiketinde sp degeri bir azaltilarak
dec sp ;cx degerinin bir bir azaltilmasi saglanmistir
mov cx,sp ;cx'e sp'yi aktar
mov ax,1 ;yeni faktoriyel hesaplamak icin ax'e 1 degeri ver
cmp sp,1 ;sp degeri 1 e ulasmis ise 2-6 arasindaki butun faktoriyeller bulunmustur
jz bol ;bol etiketine gecilebilir
faktoriyel: ;cx deki degerin faktoriyeli cx*ax ile ax e aktarilir
mul cx
loop faktoriyel
add bx,ax ;ax de bulunan faktoriyel degeri bx de toplanir.
cmp cx,0 ;cx sifira ulasmissa yeni deger atamasi icin
jz d: ;d etiketine gonderilir.
bol:
mov ax,bx ;program bol etiketine gelmis ise 2 ile 6 arasindaki
mov bx,3 ;sayilarin faktoriyellerini ve faktoriyellerinin
div bx ;toplamini bulmus demektir. bx de tutulan toplam
;ax'e aktarilir, bx'e 3 degeri verilir
;ax/bx islemi yapilir ax'e bolum dx'e kalan aktarilir
;kalan sayi dx dedir.
end