Anda di halaman 1dari 7

[PRAK.

ASSEMBLY LOGIC INSTRUCTION]

Computer Engineering 2013

PRAKTIKUM VII
AVR INSTRUCTION
1. Percobaan 0
Source Code

Hasil Program :
Analisa
:
Pada program diatas digunakan untuk menentukan STACK POINTER agar berada
dalam alamat RAM terakhir. Pada ATmega128 alamat RAM terakhir adalah 0x10FF.
Dimana Low Byte adalah 0xFF dan High Byte adalah 0x10. Sehingga dalam
melakukan operasi pasa R0 sampai dengan R15 tidak terganggu oleh STACK.
2. Percobaan 1
Source Code

Hasil Program :

Analisa
:
Pada percobaan 1 mahasiswa diminta untuk memindahkan GPR ke RAM dengan
menggunakan indirect. Dengan menggunakan perintah BRNE, perintah ini akan
terus melakukan Brench / Percabangan jika status Zero Flag adalah 0. Jika status
zero flag sama dengan 1 maka BRNE akan berhenti melakukan percabangan. Perlu

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

Computer Engineering 2013

diketahui bahwa yang menyebabkan terjadinya perubahan status register adalah


operasi yang dilakukan ALU, oleh karena itu untuk counter yaitu R25 dilakukan
pengurangan / decrement. Sehingga jika R25=0 maka zero flag akan menjadi 1.
3. Percobaan 2
Source Code

Hasil Program :
PENGISIAN R24 s.d. R31

PENGISIAN R197 s.d. 190


Analisa
:
Pada percobaan ini dilakukan pemindahan register di R24 sampai dengan R31,
karena R26 s.d. R31. Karena R26 sampai dengan R31 adalah register yang digunakan
untuk indirect addressing maka digunakan bantuan dari stack untuk menampung

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

Computer Engineering 2013

data sementara. Pertama yang dilakukan adalah memanfaatkan register Z untuk


melakukan perulangan kemudian setelah pengisian sampai dengan R29 maka di POP
Stack. Sehingga terisi sebagaimana yang dimaksud dengan soal.
4. Percobaan 3
Source Code

Hasil Program :
RAM 190 s.d 197
REGISTER DATA
Analisa
:
Pada percobaan ini dilakukan pemindahan nilai pada alamat yang sesuai dengan
soal yang dimaksud. Dengan menggunakan perulangan maka dipindah data 0
sampai dengan 7 ke alamat 0x197 sampai dengan alamat 0x190. Kemudian dengan
memanfaatkan register indirect addressing yang sebelumnya maka dipindahkan
data dari 0x190 sampai dengan 0x197 ke alamat R16 sampai dengan R23. DImana
alamt R16 adalah 0x10.
5. Percobaan 4
Source Code

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

Hasil Program :
PORTA

Computer Engineering 2013

PORTB

Analisa
:
Pada percobaan diatas dilakukan output nilai pada PORTA dan PORTB. Untuk
membuat PORT menjadi output maka nilai DDR harus diubah menjadi 1. Sehingga
nilai PORT dapat menjadi output dengan bantuan perintah OUT maka dapat
dimasukkan nilai sesuai dengan yang diinginkan oleh soal dimana nilai di PORTA
adalah 0x55 dan di PORTB adalah 0xAA.
6. Percobaan 5
Source Code

Hasil Program :
INPUT

OUTPUT
Analisa
:
Pada percobaan ini dilakukan percobaan untuk membaca nilai dari PORTC . Agar
nilai PORT dapat digunakan sebagai input maka nilai pada DDR harus diubah
menjadi 0 dapat dibaca. Dengan menggunakan perintah IN maka dapat dibaca nilai
PORTC ke register (GPR). Sehingga didapatkan nilai yang ada di PORTC.
7. Percobaan 6
Source Code

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

Hasil Program :
KONDISI 1

Computer Engineering 2013

KONDISI 2

Analisa
:
Pada percobaan ini mahasiswa diminta untuk melakukan pengubahan output yang
ada pada PORTA dimana masing masing nilai diubah dari 0x55 menjadi 0xAA dan
sebalikya dengan mengggunakan delay. Delay dibuat dengan memanfaatkan cycle
tiap instruksi (non timer).
8. Percobaan 7
Source Code

Hasil Program :
SREG
HASIL

Analisa
:
Pada percobaan diatas dilakukan instruksi penjumlahan antara 0x38 dan 0x2F. Pada
percobaan ini R17 digunakan sebagai Low Byte dan R18 sebagai High Byte. Untuk
mengatisipasi adanya carry maka digunakan instruksi BRCC dimana apabila carry
flag = 0 maka akan loncat ke label. Jika Carry Flag =1 maka akan ke instruksi di
bawahnya. Pada percobaan ini Pada Status register untuk Half Flag menjai 1 karena
ada loncatan nilai dari Bit 3 ke Bit 4.

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

9. Percobaan 8
Source Code

Computer Engineering 2013

Hasil Program :
SREG
HASIL

Analisa
:
Pada percobaan diatas dilakukan instruksi penjumlahan antara 0x9C dan 0x64. Pada
percobaan ini R17 digunakan sebagai Low Byte dan R18 sebagai High Byte. Untuk
mengatisipasi adanya carry maka digunakan instruksi BRCC dimana apabila carry
flag = 0 maka akan loncat ke label. Jika Carry Flag =1 maka akan ke instruksi di
bawahnya. Pada percobaan ini Pada Status register untuk Half Flag menjai 1 karena
ada loncatan nilai dari Bit 3 ke Bit 4. Dan pada Carry Flag bernilai 1 karena ada nilai
lebih dari penjumlahan ini dan nilai Carry tersebut ditampung pada R18.
10. Percobaan 9
Source Code

Hasil Program :
SREG
HASIL

Analisa
:
Pada percobaan diatas dilakukan instruksi penjumlahan antara 0x9C dan 0x64. Pada
percobaan ini R17 digunakan sebagai Low Byte dan R18 sebagai High Byte. Untuk

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

[PRAK. ASSEMBLY LOGIC INSTRUCTION]

Computer Engineering 2013

mengatisipasi adanya carry maka digunakan instruksi BRCC dimana apabila carry
flag = 0 maka akan loncat ke label. Jika Carry Flag =1 maka akan ke instruksi di
bawahnya. Dan pada Carry Flag bernilai 1 karena ada nilai lebih dari penjumlahan ini
dan nilai Carry tersebut ditampung pada R18.
11. Percobaan 10
Source Code :

Hasil Program :
SREG (Saat 0x80 + 0x80)
HASIL

Analisa
:
Pada percobaan ini dilakukan penjumlahan 0x80 dan 0x80. Dari hasil tersebut
didapatkan nilai 0x0 100 yang ditampung di register 16 (R16). Karena R16
merupakan register 8 bit maka nilai yang ada di R16 adalah 0x00. Kemudaian nilai
carry hasil penjumlahan di jumlahkan dengan 0x02. DImana nilai carry sebelumnya
adalah 1 maka jika dijumlahkan dengan 0x02 maka hasil di R16 adalah 0x03.

Rizki Taufik Ulil Albab/2210131040 | Politeknik Elektronika Negeri Surabaya

Anda mungkin juga menyukai