mbakbie di dunia maya

Just another dagdigdug.com weblog

assembly part 1

Mbakbie bersama kawan2 se- kerja lab, mendapatkan tugas assembly… suruh cari jalur2 jalan dari mana ke mana…

Buatlah assembly dari kasus diatas, dengan peraturan jalan melalui bundaran harus mengikuti arahnya!

Contoh:

Awal: A

Tujuan: Z

Melalui:

1. Jl. Adhyaksa

2. Gg. Akil

3. Jl. Sukapura

4. Gg. Demang

5. Jl. Sukabirus

Contoh:

Awal: B

Tujuan: X

Melalui:

1. Jl. Sukapura

2. Gg. PGA

3. Jl. Adhyaksa

2. JAWABAN

#Asumsi

#Input:

#1 berarti A

#2 berarti B

#3 berarti C

#4 berarti X

#5 berarti Y

#6 berarti Z

.data

mes0:.asciiz “Program Jalan Baru\n”

mes1:.asciiz “Awal:\n 1 utk A \n 2 utk B \n 3 utk C \n \nTujuan: \n 4 utk X \n 5 utk Y \n 6 utk Z \n

\n”

mes2:.asciiz “Awal:”

mes3:.asciiz “Tujuan:”

mes4:.asciiz “Melalui:\n”

mes5:.asciiz “Jl.Adhyaksa\n”

mes6:.asciiz “Jl.Sukapura\n”

mes7:.asciiz “Jl.Sukabirus\n”

mes8:.asciiz “Gg.Akil\n”

mes9:.asciiz “Gg.Radio\n”

mes10:.asciiz “Gg.Demang\n”

mes11:.asciiz “Gg.PGA\n”

#mes12:.asciiz “Maaf inputan salah!!\n”

.text

.globl main

main:

addu $t1,$t1,1

addu $t2,$t2,2

addu $t3,$t3,3

addu $t4,$t4,4

addu $t5,$t5,5

addu $t6,$t6,6

la $a0,mes0

li $v0,4 #print mes0

syscall

la $a0,mes1

li $v0,4 #print mes1

syscall

la $a0,mes2

li $v0,4 #print mes2

syscall

li $v0,5 #minta inputan integer

syscall

addu $t0,$v0,0 #inputan ditampung ke $t0

la $a0,mes3

li $v0,4 #print mes3

syscall

li $v0,5 #minta inputan integer

syscall

addu $t7,$v0,0 #inputan ditampung ke $t7

beq $t0,$t1,A # membandingkan nilai di t0 dan t1, jika t0<> t1 lompat ke A

beq $t0,$t2,B # membandingkan nilai di t0 dan t2, jika t0<> t2 lompat ke B

beq $t0,$t3,C # membandingkan nilai di t0 dan t3, jika t0<> t3 lompat ke C

#j warning

exit: jr $ra

A:

beq $t7,$t4,AX # membandingkan nilai di t7 dan t4, jika t7<> t4 lompat ke AX

beq $t7,$t5,AY # membandingkan nilai di t7 dan t5, jika t7<> t5 lompat ke AY

beq $t7,$t6,AZ # membandingkan nilai di t7 dan t6, jika t7<> t6 lompat ke AZ

#j warning

B:

beq $t7,$t4,BX # membandingkan nilai di t7 dan t4, jika t7<> t4 lompat ke BX

beq $t7,$t5,BY # membandingkan nilai di t7 dan t5, jika t7<> t5 lompat ke BY

beq $t7,$t6,BZ # membandingkan nilai di t7 dan t6, jika t7<> t6 lompat ke BZ

#j warning

C:

beq $t7,$t4,CX # membandingkan nilai di t7 dan t4, jika t7<> t4 lompat ke CX

beq $t7,$t5,CY # membandingkan nilai di t7 dan t5, jika t7<> t5 lompat ke CY

beq $t7,$t6,CZ # membandingkan nilai di t7 dan t6, jika t7<> t6 lompat ke Cz

#j warning

AX:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

j $ra

AY:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

la $a0,mes8

li $v0,4 #print mes8

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

j $ra

AZ:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

la $a0,mes8

li $v0,4 #print mes8

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

la $a0,mes10

li $v0,4 #print mes10

syscall

la $a0,mes7

li $v0,4 #print mes7

syscall

j $ra

BX:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

la $a0,mes11

li $v0,4 #print mes11

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

j $ra

BY:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

la $a0,mes11

li $v0,4 #print mes11

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

la $a0,mes8

li $v0,4 #print mes8

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

j $ra

BZ:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

la $a0,mes10

li $v0,4 #print mes10

syscall

la $a0,mes7

li $v0,4 #print mes7

syscall

j $ra

CX:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes7

li $v0,4 #print mes7

syscall

la $a0,mes9

li $v0,4 #print mes9

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

la $a0,mes11

li $v0,4 #print mes11

syscall

la $a0,mes5

li $v0,4 #print mes5

syscall

j $ra

CY:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes7

li $v0,4 #print mes7

syscall

la $a0,mes9

li $v0,4 #print mes9

syscall

la $a0,mes6

li $v0,4 #print mes6

syscall

j $ra

CZ:

la $a0,mes4

li $v0,4 #print mes4

syscall

la $a0,mes7

li $v0,4 #print mes7

syscall

j $ra

CONSOLE


yah… begitulah assembly…

susah…

Leave a Reply