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?
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.
Terima kasih mas, cukup membantu
ReplyDelete