Buatlah program untuk menghitung banyak putaran berdasarkan nilai :
A =21,
B =4,
C =5
Jika A>=20 dan b>c maka banyak putaran A*(B-C) ,
Jika B=C maka banyak putaran adalah A
Jika B
Jika B=C maka putaran yang harus dlakukan adalah A
Jika B
LOGIKA
1. Mulai
2. Masukkan nilai ke A
3. Masukkan nilai ke B
4. Masukkan nilai ke A
5. Jika A >=20 lompat ke langkah berikutnya tetapi jika A < 20 lompat ke no.9
6. dan B>C yang dilakukan sebanyak A*(B-C)
7. jika B=C maka putaran yang harus dilakukan adalah sebanyak nilai A
8. jika B>C maka putaran yang dilakukan sebanyak A*(C-B)http://www.blogger.com/img/blank.gif
9. dan B
11. A+(C-B)
12. cetak putaran yang harus dilakukan
13. selesai
=====================================================================================
Flowcart Program (silahkan download di link
download
=====================================================================================
listing program
======================================================================================
.MODEL SMALL
.CODE
ORG 100H
Tdata: JMP Proses
Kal DB 'jumlah putaran yang dilakukan $'
A DW 21
B DW 4
C dw 5
Proses:
MOV AX,A ;masukkan nilai A ke AX, AX = 21
CMP AX,20 ; bandingkan AX dengan 20
JB BANDINGKAN ;jika AX lebih kecil dari 20 maka lompat ke BANDINGKAN
JAE BANDINGAN ; jika AX lebih besar sama dengan 20 maka lompat ke BANDINGAN
BANDINGAN:
MOV AX,B ; isikan nilai B ke AX, AX=4
CMP AX,C ; bandingkan nilai AX dengan nilai C
JA besar ; jika nilai AX lebih besar dari nilai C maka lompat ke besar
JE sama ; jika nilai AX sama dengan nilai C maka lompat ke sama
JB kecil ; jika nilai AX lebih kecil dari nilai C maka lompat ke kecil
BANDINGKAN:
MOV AX,B
CMP AX,C
JA lbesar
JE sama
JMP lkecil
besar: ;OPERASI A*(B-C)
MOV AH,09
MOV DX,OFFSET Kal
INT 21H
MOV AX,B
SUB AX,C
MUL A
MOV BX,10
XOR CX,CX
Ulang:
XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE Ulang
JMP CETAK
sama: ; PUTARAN SAMA DENGAN A
MOV AH,09
MOV DX,OFFSET Kal
INT 21H
MOV AX,A
MOV BX,10
XOR CX,CX
Ulang1:
XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE Ulang1
JMP CETAK
kecil: ;OPERASI A*(C-B)
MOV AH,09
MOV DX,OFFSET Kal
INT 21H
MOV AX,C
SUB AX,B
MUL A
MOV BX,10
XOR CX,CX
Ulang2:
XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE Ulang2
JMP CETAK
lbesar: ; OPERASI A+(B-C)
MOV AH,09
MOV DX,OFFSET Kal
INT 21H
MOV AX,B
SUB AX,C
ADD AX,A
MOV BX,10
XOR CX,CX
Ulang3:
XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE Ulang3
JMP CETAK
lkecil: ;OPERASI A+(C-B)
MOV AH,09
MOV DX,OFFSET Kal
INT 21H
MOV AX,C
SUB AX,B
ADD AX,A
MOV BX,10
XOR CX,CX
Ulang5:
XOR DX,DX
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE Ulang5
CETAK:
POP DX
ADD DL,'0'
MOV AH,02
INT 21h
Loop Cetak
INT 20h
END Tdata
Tidak ada komentar:
Posting Komentar