BAB I
TRANSFER DATA
1.1 Tujuan
1. Memahami proses pentransferan data pada mikroprosesor
2. Mampu membuat perangkat lunak dengan menggunakan instruksi-instruksi
yang berhubungan dengan proses pentransferan data
1.2 Peralatan Yang Digunakan
1. 1 set PC atau laptop
2. Perangkat lunak simulator sms32v50
3. Buku Kerja
1.3 Teori Dasar
Dalam perangkat lunak simulator ini, arsitektur mikroprosesor meliputi
Central Processing Unit (CPU), RAM 256 byte, I/O 16 port (6 yang digunakan),
perangkat keras timer dengan trigger interupsi 02, keyboard dengan trigger
interupsi 03, dan perangkat eksternal yang sudah terkoneksi dengan port
mikroprosesor. Arsitektur mikroprosesor dalam simulator ini ditunjukkan dalam
Gambar 1.
CPU ini memiliki empat register umum disebut AL, BL, CL dan DL. Lebar
data dalam register ini adalah delapan bit atau satu byte. Register dapat
menyimpan nomor unsigned dalam kisaran 0-255 dan ditandatangani angka di
kisaran -128 sampai 127. Register digunakan sebagai lokasi penyimpanan
sementara. Register digunakan dalam preferensi untuk lokasi RAM karena
membutuhkan waktu yang relatif lama untuk mentransfer data antara RAM dan
CPU. Komputer yang lebih cepat umumnya memiliki register yang lebih atau
memori di dalam pada chip CPU. Register yang bernama AL, BL, CL dan DL
karena versi 16-bit CPU ini memiliki lebih register disebut AH, BH, CH dan
DH. The 'L' berarti rendah dan 'H' berarti Tinggi.
Register ini berisi alamat dari instruksi dieksekusi. Ketika eksekusi selesai, IP
meningkat ke titik ke instruksi berikutnya. Instruksi Langsung mengubah nilai
IP sehingga melompat aliran program ke posisi baru. Intruksi CALL dan INT
juga mengubah nilai yang disimpan dalam IP. Dalam tampilan RAM, yang
merupakan instruksi pointer disorot merah dengan teks kuning.
Register ini berisi tanda (“bendera” / “flag”) yang melaporkan status CPU.
The 'Z' zero flag bernilai 1 jika perhitungan memberikan hasil nol.
The 'S' sign flag bernilai 1 jika perhitungan memberikan hasil negatif.
The 'O' overflow flag diset jika hasilnya melebihi nilai maksimum dalam
register.
The 'I' interrupt diset jika interupsi diaktifkan.
Dalam simulator ini memiliki 256 byte RAM. Alamat RAM dimulai dari 0
sampai 255 dalam angka desimal atau dari [00] untuk [FF] dalam angka
heksadesimal. Alamat RAM biasanya diberikan dalam tanda kurung siku
seperti [7C] mana 7C adalah angka heksadesimal. Baca [7C] sebagai "data
yang disimpan di lokasi 7C"
Bus
Bus adalah kumpulan kabel yang digunakan untuk membawa sinyal sekitar
komputer. Bus umumnya dicetak sebagai trek paralel pada papan sirkuit.
Sebuah komputer 8-bit biasanya memiliki register lebar 8 bit (8 kabel dalam
bus). Sebuah komputer 16-bit memiliki register 16 bit (16 kabel dalam bus)
dan sebagainya.
Data Bus Bus data digunakan untuk membawa data antara CPU, RAM
dan IO port. Simulator ini memiliki bus data 8-bit
Address Bus Bus Alamat digunakan untuk menentukan apa alamat RAM
atau port IO harus digunakan. Simulator memiliki alamat 8-bit
bus.
Control Bus Bus Kontrol ini untuk menentukan apakah CPU akan
mengakses RAM atau port IO. Bus Kontrol juga untuk
menentukan apakah data sedang dibaca atau ditulis. CPU
membaca data ketika mengalir ke CPU. Bus Kontrol menulis
data ketika data mengalir keluar dari CPU ke RAM atau port
IO.
Penjelasan simulator
Running a Program
Running program step by step, kemudian lengkapi tabel berikut ini sesuai
pengamatan.
Register
List File
AL BL CL DL IP SP SR
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
Program 2
Program 2 berisi program untuk memindahkan data dari register ke memori
atau sebaliknya. Perpindahan data ini disebut Direct Move (Memory).
;Program2
CLO
MOV AL,31
MOV [40],AL
MOV BL,[40]
END
Register M
List File
AL BL CL DL IP SP SR
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
Program 3
Program 3 berisi program untuk memindahkan data dari register ke
memori (alamatnya ditunjukkan dari nilai register tertentu) atau sebaliknya.
Perpindahan data ini disebut Indirect Move.
;Program3
CLO
MOV AL,31
MOV BL,25
MOV [BL],AL
MOV CL,[BL]
END
Register M
List File
AL BL CL DL IP SP SR
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
1.5 Tugas
1. Jelaskan kaidah penulisan program bahasa assembler yang baik!
2. Buatlah tabel konversi dari heksadesimal 0 – F ke biner !
3. Apa yang dimaksud dengan opcode (operator) dan operand ? Jelaskan !
4. Jelaskan apa yang dimaksud dengan program 1 Byte, 2 Byte, dan 3 Byte !
Berikan contohnya !
5. Carilah kode ASCII untuk karakter huruf yang meliputi huruf kapital dan
huruf kecil !
6. Buatlah program untuk memindahkan data dengan karakter H, E , L, L, O
(lihat kode ASCII) ke RAM dengan alamat C0, C1, C2, C3, C4 !
(Gunakan kaidah penulisan program yang baik!)