LAPORAN PRAKTIKUM I
SISTEM OPERASI
MODEL PEMROGRAMAN I
Disusun oleh:
HUDDA AFFANDI
NIM : 12615009
JURUSAN TEKNOLOGI INFORMASI
POLITEKNIK NEGERI SAMARINDA
2012
A.
Tujuan
Pada
akhir praktikum ini, peserta dapat:
1. Memahami komponen
arsitektur komputer tingkat bawah.
2. Menggunakan simulator untuk
membuat dan mengeksekusi instruksi dasar CPU.
3.
Membuat
instruksi untuk memindahkan data ke register, membandingkan isi register,
memasukkan data ke stack,
mengambil data dari stack, melompat ke lokasi alamat, menambahkan nilai
dalam register.
4. Menjelaskan fungsi-fungsi dari
register khusus CPU antara lain register PC, SR, dan SP.
B.
Dasar Teori
Model pemrograman arsitektur
komputer mendefinisikan komponen-komponen arsitektur pada tingkat bawah (low
level architectural components) yang mencakup:
- Set instruksi prosesor
Set Instruksi didefinisikan sebagai suatu
aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara,
ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis
register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi,
dan operasi I/O eksternalnya (jika ada).
ISA merupakan
sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang
diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain
prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa
mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer
digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC,
Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain
A. Elemen Instruksi Mesin
- Untuk dapat dieksekusi CPU, suatu instruksi
harus berisi elemen informasi yang
diperlukan CPU secara lengkap dan jelas.
- Elemen – elemennya:
- Operation
Code (Opcode)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner. - Source
Operand Reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi. - Result
Operand Reference
Merupakan hasil atau keluaran operasi. - Next
Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi.
B.
Operasi-Operasi Set Instruksi
a. Operasi set instruksi untuk transfer
data :
• MOVE : memindahkan word atau blok dari sumber ke tujuan
• STORE : memindahkan word dari prosesor ke memori.
• LOAD : memindahkan word dari memori ke prosesor.
• EXCHANGE : menukar isi sumber ke tujuan.
• CLEAR / RESET : memindahkan word 0 ke tujuan.
• SET : memindahkan word 1 ke tujuan.
• PUSH : sumber ke bagian memindahkan word dari paling atas stack.
• POP : memindahkan word dari bgian paling atas sumber
• MOVE : memindahkan word atau blok dari sumber ke tujuan
• STORE : memindahkan word dari prosesor ke memori.
• LOAD : memindahkan word dari memori ke prosesor.
• EXCHANGE : menukar isi sumber ke tujuan.
• CLEAR / RESET : memindahkan word 0 ke tujuan.
• SET : memindahkan word 1 ke tujuan.
• PUSH : sumber ke bagian memindahkan word dari paling atas stack.
• POP : memindahkan word dari bgian paling atas sumber
b. Operasi set instruksi untuk arithmetic
:
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal.
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal.
c. Operasi set instruksi untuk operasi
logical :
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada
ujung bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
- Register
Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja
dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap
program-program komputer dengan
menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya
nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu
tertentu. Register prosesor berdiri pada tingkat tertinggi dalam hierarki
memori:
ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah
paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga
digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan
manipulasi data. Register
umumnya diukur dengan satuan bit yang dapat
ditampung olehnya, seperti "register 8-bit", "register
16-bit", "register 32-bit", atau "register 64-bit" dan
lain-lain.
Istilah register saat ini dapat merujuk kepada kumpulan register
yang dapat diindeks secara langsung untuk melakukan input/output terhadap
sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register
Arsitektur". Sebagai contoh set instruksi Intel x86
mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU
yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan
register 32-bit.
Jenis register
Register terbagi menjadi beberapa kelas:
· Register
data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat
(integer).
· Register
alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga
untuk mengakses
memori.
· Register general
purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
· Register floating-point, yang
digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
· Register
konstanta (constant register), yang digunakan untuk menyimpan
angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phi,
null, true, false dan lainnya.
· Register
vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang
dilakukan oleh prosesor SIMD.
· Register special
purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti
halnya instruction pointer, stack pointer, dan status register.
·
Register yang spesifik terhadap model mesin (machine-specific
register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan
data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti
dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu
saja, mungkin register jenis ini tidak menjadi standar antara generasi
prosesor.
Ukuran register
Tabel berikit berisi ukuran register dan padanan prosesornya
Register
|
Prosesor
|
4-bit
|
|
8-bit
|
|
16-bit
|
|
32-bit
|
|
64-bit
|
- Jenis-jenis pengamatan
instruksi dan data
- Interrupts dan exceptions
Interupts
Interupsi (interrupt) adalah peristiwa internal
atau eksternal asinkron dalam alur program utama pada saat terjadi sesuatu yang
memicu (trigger) untuk mendapatkan perhatian dari mikrokontroler.
Pada saat terjadi interupsi, untuk sementara mikrokontroler akan menjeda urutan perintah yang sedang dieksekusi, ia akan melaksanakan dulu perintah yang ada pada rutin interupsi (ISR - interrupt service routine), kemudian bila telah selesai, maka mikrokontroler akan melanjutkan kembali eksekusi perintah yang tadi sempat tertunda. Biasanya, saat sebuah mikrokontroler berkomunikasi dengan dunia luar, ia harus menunggu peristiwa eksternal terjadi sebelum mengambil suatu tindakan. Katakanlah misalnya, kita memiliki sebuah tombol dan LED yang terhubung ke mikrokontroler dan tugas dia adalah untuk menyalakan LED ketika kita menekan tombol. Apa yang mikro akan lakukan? Mikrokontroler akan terus memeriksa apakah tombol sudah ditekan atau belum dan jika sudah, ia akan mengambil tindakan. Nah, ini berarti bahwa mikro akan tetap dalam keadaan sibuk-tunggu, padahal mungkin ia juga memiliki tugas lain yang seharusnya bisa ia dilakukan.
Pada saat terjadi interupsi, untuk sementara mikrokontroler akan menjeda urutan perintah yang sedang dieksekusi, ia akan melaksanakan dulu perintah yang ada pada rutin interupsi (ISR - interrupt service routine), kemudian bila telah selesai, maka mikrokontroler akan melanjutkan kembali eksekusi perintah yang tadi sempat tertunda. Biasanya, saat sebuah mikrokontroler berkomunikasi dengan dunia luar, ia harus menunggu peristiwa eksternal terjadi sebelum mengambil suatu tindakan. Katakanlah misalnya, kita memiliki sebuah tombol dan LED yang terhubung ke mikrokontroler dan tugas dia adalah untuk menyalakan LED ketika kita menekan tombol. Apa yang mikro akan lakukan? Mikrokontroler akan terus memeriksa apakah tombol sudah ditekan atau belum dan jika sudah, ia akan mengambil tindakan. Nah, ini berarti bahwa mikro akan tetap dalam keadaan sibuk-tunggu, padahal mungkin ia juga memiliki tugas lain yang seharusnya bisa ia dilakukan.
Dengan
menggunakan teknik polling, maka ketika tombol ditekan, ia
akan menghasilkan sinyal hardware, sebuah interupsi eksternal untuk
mikrokontroler dan akan ditanggapi dengan cepat bahkan mikro akan meninggalkan
apa yang dilakukannya untuk masuk ke ISR dan melaksanakan instruksi didalamnya.
Exceptions
Sebuah exception adalah sebuah error
yang bersifat logical ataupun berasal dari sistem yang terjadi pada waktu
eksekusi script. Sebuah exception dapat di aktifkan oleh sistem ataupun oleh
program itu sendiri. Exception handling adalah fitur baru yang terdapat pada
PHP 5. Pada php digunakan try…catch untuk menghandle sebuah exception. Handling
Exception adalah cara yang “elegan” dalam menangani kesalahan/error yang
terjadi di sebuah program. Karena pada kenyataan tidak ada sebuah program yang
bebas dari kesalahan. Oleh karena itu kita butuh cara yang ELEGAN untuk
menangani kesalahan.
Pada model
pemrograman ini terdapat interaksi antar komponen diatas. Ini merupakan model
pemrograman tingkat rendah (low-level) yang memungkinkan suatu komputasi
terprogram.
C.
DATA HASIL PRAKTIKUM
A. Transfer data
pertama
adalah instruksi memindahkan angka 5 ke R00, dan eksekusilah. Setelah itu
memindahkan angka 8 ke R01.
B. Aritmatika
pada instruksi yang kedua yaitu ADD R00 dan
R01 hasil penjumlahannnya terjadi di register
set
di R01 bernilai 13.
C.
Stack
pointer
instruksi berikutnya adalah membuat instruksi
yang menaruh hasil diatas pada program stack selanjutnya adalah instruksi untuk menaruh (push) angka -2 pada
stack teratas dan yang terjadi adalah nilai pada register SP bertambah 8114 sebelumnya
8112.
D. Pembanding
instruksi untuk
membandingkan nilai register R00 dan R01 dan mengeksekusi instruksi tersebut pada bit
status tidak terjadi apa - apa.
E. Program Counter
selanjutnya
adalah instruksi untuk melakukan unconditionally jump ke instruksi yang pertama.
F. Alamat
fisik dan alamat logika
Mengamati nilai pada kolom Padd and Ladd, dan
mengamati nilai pada Ladd R01 - R02.
G. Stack Pointer
Gambar di atas adalah instruksi untuk mengambil (pop)
nilai teratas dari program stack ke register R02 dan R03 dan amati nilai pada SP.
H. Status register
instruksi pembanding
(compare) yang membandingkan nilai dalam register R04 dan R05, dan menyisipkan
secara manual dua nilai yang sama pada register R04 dan R05
instruksi pembanding (compare) dan menyisipkan secara manual dua nilai pada register
R04 < R05.
instruksi pembanding (compare) dan menyisipkan secara manual dua nilai pada register
R04 > R05.
I.
Jump
if
Gambar di atas adalah instruksi yang akan lompat langsung
ke instruksi pertama dengan nilai yang sama
Pada register R04
= 8 dan R05 = 8.
Tidak ada komentar:
Posting Komentar