Tuesday, 7 January 2014

TUJUAN
1.      Memahami bagaimana suatu program disimpan pada memori
2.      Mengetahui fungsi khusus register-register di prosessor 8086
3.      Memahami penggunaan segmen kode dan segmen data

Kegiatan 1
1.      Ketiklah listing dibawah ini pada emu8086.

LISTING 1
1
2
3
4
5
6
7
8
9
ORG 100h

MOV AL,25
ADD AL,15
ADD AL,32
ADD AL,27
ADD AL,48

RET

2.      Jelaskan tentang program diatas
-          Apa fungsi program diatas?
Program di atas mempunyai dua instruksi, yaitu: MOV yang berfungsi untuk menyalin dan ADD yang berfungsi untuk menjumlahkan. Pada instruksi MOV AL 25 berarti memindahkan angka 25 ke AL. Pada istruksi ADD AL 15 berarti nilai awal AL akan ditambah dengan 15.

-          Berapa banyak kapasitas memori yang diperlukan untuk menyimpan program diatas?
Kapasitas memori yang dibutuhkan sebesar 32 bit

-          Pada alamat fisik berapa program diatas disimpan?
Alamat fisiknya adalah F4154 yang berasal dari penjumlahan CS: F400 dengan IP: 0154


-          Jika data “48” pada instruksi paris ke 7 diganti dengan “260” akan terjadi error, apa penyebabnya?
Penyebab terjadinya error karena melebihi 8 bit.


Kegiatan 2
1.      Ketik Listing dibawah ini
LISTING 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ORG 100h

MOV DX,800h
MOV DS, DX
MOV BX,00h
MOV [BX],25
MOV [BX+1],15
MOV [BX+2],32
MOV [BX+3],27
MOV [BX+4],48

ADD AL,[BX]
ADD AL,[BX+1]
ADD AL,[BX+2]
ADD AL,[BX+3]
ADD AL,[BX+4]
RET


2.      Jelaskan tentang program diatas
-          Apa perbedaan Listing 1 dengan listing 2?
Pada listing pertama, nilainya langsung ditambahkan ke register AL melalui istruksi ADD. Sedangkan pada listing ke dua, nilainya dimasukkan ke register BX melalui instruksi MOV. Pada BX+1, BX+2, BX+3, BX+4 yang mempunyai nilai sendiri dimasukkan dan dijumlahkan ke register AL.

-          Apa yang terjadi jika penggunaan register BX diganti dengan register lain?
Apabila register BX diganti menggunakan register lain (misal AX atau CX) maka akan mengalami error dikarenakan pada listing tersebut fungsi MOV hanya menuju ke register BX.

-          Bagaimna jika instruksi pada baris ke 3 dihilangkan?
Apabila instruksi baris 3 dihilangkan, maka nilai register DS ditambah dengan DX yang bernilai 0000.

-          Bagaiman jika penggunaan register AL diganti dengan register AX?
Apabila dirubah maka tidak terjadi perubahan pada hasil akhirnya, dikarenakan AX lebih besar kapasitas memorinya daripada AL.

Kegiatan 3
1.      Ketiklan listing dibawah ini
LISTING 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ORG 100h

MOV SI, 012Ah
MOV [SI],0B0h
MOV [SI+1],019h
MOV [SI+2],004h
MOV [SI+3],00Fh
MOV [SI+4],004h
MOV [SI+5],020h
MOV [SI+6],004h
MOV [SI+7],01Bh
MOV [SI+8],004h
MOV [SI+9],030h 
MOV AX,0

RET

22.  Jelaskan tentang apa program diatas
o   Apakah fungsi dari program diatas?
Program ini berfungsi untuk menyimpan nilai-nilai pada register SI dengan berbentuk variabel-variabel yaitu SI+1, SI+2, dst.

o   Setelah listing 3 dieksekusi nilai pada register AL = 093h, kenapa demikian?
Nilai 093h didapat akibat istruksi MOV AX, 0 terdapat perintah MOV [SI+9], 030h yang mengakibatkan register AL ter ADD.

o   Perhatikan isi register DS dan CS. Jelaskan pengaruhnya terhadap program diatas?
Nilai dan segmen DS dan CS tidak berubah, sehingga pada program ini register DS dan CS tidak berpengaruh.


1 comment :