Anda di halaman 1dari 9

LAPORAN EKSPERIMEN

MIKROKOMPUTER
PENGENALAN, REGISTER DAN AKSES MEMORI

Disusun oleh:

Tanggal
Asisten

Nama
: Rossa
Hening Widyastuti
NIM
:
14/364108/PA/15894
: 30 September 2015
: Rifatunnisa

Lab. Elektronika Dasar & Lab. Instrumentasi Dasar


Jurusan Ilmu Komputer dan Elektronika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Gadjah Mada
Yogyakarta
I. Judul
Pengenalan, Register dan Akses Memory
II. Listing dan Hasil
1. Kegiatan 1
Listing:

Hasil:
keadaan memori setelah program diemulasi

keadaan akhir dari register sesudah dieksekusi

Keadaan memory setelah semua instruksi di eksekusi

2. Kegiatan 2
a. Listing

b. Hasil

keadaan memori segmen kode dan segmen data sebelum instruksi dieksekusi

keadaan akhir dari register setelah dieksekusi

keadaan memori segmen kode dan segmen data setelah semua instruksi dieksekusi

3. Kegiatan 3

keadaan akhir dari register saat program dieksekusi

keadaan memori sebelum dan sesudah program dieksekusi

III.

Pembahasan
1. Kegiatan 1
a. Apa fungsi program diatas:
fungsi program di atas adalah untuk menambahkan nilai 25 dalam register AL.
Setelah itu dilakukan penambahan nilai dalam register AL dengan instruksi add.
Sehingga AL= 25 +15+32+27+48.
b. Berapa banyak kapasitas memori yang diperlukan untuk menyimpan program
diatas?
Jumlah kapasitas memori yang di perlukan yaitu sebanyak 11 byte.
c. Kenapa tidak terjadi perubahan isi memori setelah program dieksekusi?
Karena disini hanya menambahkan nilai pada register (AL) bukan menambahkan
nilai pada alamat memori. Register berfungsi untuk menyimpan data sementara.
d. Pada alamat fisik berapa program diatas disimpan? Berapa kapasitas memori yang
diperlukan untuk menyimpan program?
Di alamat fisik 07100. Membutuhkan 11 byte memori.
e. Jika data 48 pada instruksi baris ke 7 diganti dengan 260 akan terjadi error, apa
penyebabnya?
Jika kita menambahkan dengan 260, maka akan terjadi error karena nilai 260 jika
dikonversi ke bilangan heksa adalah 104h. 104h berarti membutuhkan kapasitas 12
bit, sedangkan register AL hanya mempunyai kapasitas 8 bit.
2. Kegiatan 2
a. Jelaskan tentang program diatas
Pertama memberi nilai sejumlah 800h (2048) pada register DX, lalu menyalin nilai
DX pada DS. Memberi nilai 0 ke BX, menambahkan nilai 25 pada alamat memori
BX, lalu menambahkan nilai 15, 32, 27, 48 berurutan pada alamat memori BX.
Pada instruksi add, menambahkan isi pada alamat memori BX dan nilai pada AL.

b.

c.
d.

e.

Selanjutnya terus menambahkan nilai pada alamat memori BX+1 dan seterusnya
dengan nilai AL.
Apa perbedaan Listing 1 dengan listing 2
perbedaannya adalah ketika di listing 1 penambahan nilai dilakukan secara langsung
pada register, sedangkan di listing 2 penambahan nilai dilakukan melalui
penambahan pada alamat memori.
Apa yang terjadi jika penggunaan register BX diganti dengan register lain.
Jika penggunaan register BX diganti dengan register lain yang terjadi adalah eror.
Register BX secara default bekerja sama dengan register segmen DS.
Bagaimana jika instruksi pada baris ke 3 dihilangkan dan instruksi pada baris ke 4
diganti MOV DS, 0800h? Apakah hasilnya sama? Kenapa demikian?
Jika instruksi pada baris ke 3 dihilangkan dan instruksi pada baris ke 4 diganti
MOV DS, 0800h akan terjadi eror karena sebelum mengubah nilai 0800h pada DS
diperlukan perantara untuk pemberian alamat, tidak dapat secara langsung
mengubah nilai.
Bagaimana jika penggunaan register AL diganti dengan register AX?
Jika penggunaan register AL diganti dengan register AX makan data yang terdapat
pada register AH dan AL akan berubah. Bila sebelumnya yang berubah hanya
register AL, sekarang keduanya akan ikut berubah, karena AX sendiri memiliki
kapasistas 16 bit yang terdiri dari AH 8 bit dan AL 8 bit.

3. Kegiatan 3
a. Apakah fungsi dari program diatas?
Memberi nilai 0123Eh pada register SI, memberi nilai alamat memori SI sejumlah
0B0h, lalu menambahkan isi dari alamat memori SI seterusnya dengan nilai 019h,
004h, 00Fh, 004h, 020h, 004h, 01Bh, 004h, dan 030h. Tapi disini tidak mengubah
alamat segmentnya (DS), sehingga memberi nilai alamat di CS (Code Segment).
b. Setelah listing 3 dieksekusi nilai pada register AL = 093h, kenapa demikian?
Pada listing di atas, isi memori dari 0700:012E sampai 0700:138 telah berubah
menjadi B0 19 04 0F 04 20 04 1B 04 30 C3. Dalam bahasa mesin, diartikan sebagai
MOV AL,19H; ADD AL, 0F; ADD AL,20H; ADD AL, 1B; ADD AL,30H,RET.
Jadi nilai pada AL akan berubah. AL= 19h+0F+20h+1B+30h= 93.
c. Perhatikan isi register DS dan CS. Jelaskan pengaruhnya terhadap program diatas?
Disini DS dan CS tidak ada yang berubah, sehingga tidak ada pengaruhnya
terhadap program diatas.

IV.Kesimpulan
1. Bahasa assembly adalah merupakan Bahasa pemrograman tingkat rendah.
2. Instruksi MOV berfungsi menyalin operan ekdua (sumber) ke operan pertama (tujuan).
Operan sumber dapat menjadi nilai langsung (immediate value), general purpose
register, atau lokasi memori.

3. Instruksi ADD berfungsi untuk menambahkan nilai pada suatu register dan
menambahkan isi dari beberapa register.
4. Penambahan nilai pada suatu register tidak berpengaruh pada isi memory karena tidak
dilakukan penambahan secara langsung pada alamat memory. Register hanya
menyimpan data sementara.
5. Fungsi utama dari register adalah untuk menyimpan variable atau data. Ukuran register
masing-masing 16 bit. Register AX, BX, CX, DX terdiri dari 2 register yang terpisah 8
bit. Jadi ketika kita mengubah salah satu register 8 bit makan register 16 bit juga
diperbaharui, begitu juga sebaliknya.
6. CS berfungsi untuk menunjuk pada segmen yang berisi program yang berjalan.
7. DS umumnya berfungsi untuk menunjuk pada bagian dimana variable didefinisikan.

Anda mungkin juga menyukai