PRAKTIKUM ASSEMBLER
MODUL
PRAKTIKUM ASSEMBLER
Central Processing Unit (CPU) CPU adalah "otak" dari komputer. Semua perhitungan, keputusan dan perpindahan data diolah di CPU. CPU memiliki lokasi penyimpanan yang disebut register. CPU juga memiliki register yang disebut Aritmatika dan Logika Unit (ALU) di mana perhitungan matematika dan logika dilakukan. Data diambil dari register, diproses dan hasil kembali ke register. CPU memiliki kumpulan perintah-perintah untuk berbagai proses yang disebut set instruksi. Salah satu instruksi untuk perpindahan data adalah mov. Register Umum (General Purpose Registers) 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 Khusus (Special Purpose Registers) Register khusus dalam CPU disebut IP, SR dan SP Instruction Pointer (IP) 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. Status Register (SR) 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.
MODUL
PRAKTIKUM ASSEMBLER
Stack Pointer (SP) Stack atau tumpukan adalah daerah memori terorganisir menggunakan LIFO terakhir dalam aturan keluar pertama. Stack pointer menunjuk ke tumpukan berikutnya lokasi yang kosong. Dalam simulator ini, tumpukan dimulai pada alamat BF tepat di bawah RAM yang digunakan untuk tampilan video. Tumpukan bergerak menuju alamat nol. Data dimasukkan ke stack untuk disimpan untuk penggunaan selanjutnya. Data diambill dari tumpukan bila diperlukan. Stack pointer SP melacak di mana data yang akan disimpan maupun yang akan diambil. Dalam tampilan RAM, stack pointer disorot biru dengan teks kuning Random Access Memory (RAM) 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 Address Bus Bus data digunakan untuk membawa data antara CPU, RAM dan IO port. Simulator ini memiliki bus data 8-bit Bus Alamat digunakan untuk menentukan apa alamat RAM atau port IO harus digunakan. Simulator memiliki alamat 8-bit 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. Clock membawa pulsa reguler sehingga semua komponen elektronik dapat berfungsi pada saat yang tepat. Kecepatan clock antara 100 dan 200 juta siklus per detik khas (1997). Hal ini disebut sebagai clock speed dalam MHz atau megahertz. Simulator berjalan dalam gerakan lambat sekitar satu instruksi per detik. Hal ini disesuaikan pada rentang kecil.
Control Bus
MODUL
PRAKTIKUM ASSEMBLER
Hardware I nterrupts
Interupsi Hardware membutuhkan setidaknya satu jalur. Ini memungkinkan CPU untuk merespon peristiwa dipicu oleh perangkat keras. CPU memproses beberapa kode mesin dalam menanggapi interupsi. Setelah selesai, maka dilanjutkan dengan tugas aslinya.
Untuk menulis program assembler, gunakan tab source code (Alt+U). Jika program sudah selesai anda ketik, untuk menjalankan hasil program dapat digunakan tombol-tombol sebagai berikut:
Running a Program
Untuk menjalankan program untuk satu perintah. Bisa beberapa perintah dengan menekan tombol step yang dipercepat.
MODUL
PRAKTIKUM ASSEMBLER
Untuk menjalankan program secara terus menerus. Bisa dengan menekan tombol disamping atau tekan F9 atau Alt+R. Untuk mempercepat atau memperlambat program yang berjalan. Bisa dengan menekan tombol disamping atau tekan Alt+L or Alt+T Untuk menghentikan program dengan menekan disamping atau tekan Alt+O atau tekan Escape. tombol
Untuk memulai lagi program yang ter-pause dengan menekan tombol disamping atau tekan Alt+N. Untuk memulai kembali program dari awal dengan menekan tombol disamping atau tekan Alt+E. Untuk membuka tampilan RAM dengan menekan tombol disamping atau tekan Alt+M. 1.4 Prosedur Percobaan Buka program sms32v50 kemudian tulis program percobaan dibawah ini. Program 1 Program 1 ini berisi program untuk memindahkan data 8 bit secara langsung ke register tujuan. Register tujuan meliputi register-register 8 bit yaitu AL, BL, CL, dan DL. Perpindahan data ini disebut Immediate Move.
;Program1 CLO MOV MOV MOV MOV END
Running program step by step, kemudian lengkapi tabel berikut ini sesuai pengamatan. List File Register DL IP
AL
BL
CL
SP
SR
MODUL
PRAKTIKUM ASSEMBLER
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 MOV MOV END
List File
AL
BL
CL
Register DL IP
M SP SR
Dari tabel diatas, berikan analisis Anda ! 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 MOV MOV MOV END
MODUL
PRAKTIKUM ASSEMBLER
List File
AL
BL
CL
Register DL IP
M 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!)
MODUL
PRAKTIKUM ASSEMBLER