NAMA

advertisement
TEDDY NUGRAHA
1100013654
07 PAW
Soal
1. Isi Register CS = 2000, DS = 3000, SS = 4000, SP = 4242, IP = 1212
a. Tentukan alamat dari instruksi yang akan diambil
b. Tentukan alamat dari stack yang paling atas
2. Apa fungsi dari Register Ax, Bx, Cx, dan Dx pada 8080 atau EAx, EBx, ECx, EDx pada
Pentium
3. Tuliskan isi stack pada program Hal 17 s/d MOVE di tengah
Jawab :
1. Jawab :
a. Alamat dari instruksi yang akan diambil : IP + CS x 16
 1212 + (2000 x 16)
 1212 + 20000
 21212
b. Alamat dari stack yang paling atas : SP + SS x 16
 4242 + (4000 x 16)
 4242 + 40000
 44242
2. Fungsi dari Register Ax, Bx, Cx, dan Dx pada 8080 dan EAx, EBx, ECx, dan EDx pada
Pentium :
Fungsi dari register AX, BX, CX, dan DX pada 8080 :
-. Register AX (Accumulator register - 16 bit) berfungsi sebagai register yang
menangani proses aritmatik atau proses pertambahan, pengurangan, perkalian, dan
pembagian. Tapi bisa menyimpan data sementara maupun sebagai tempat transit data.
Register ax terbagi atas high dan low yaitu :
 register ah (8bit) sebagai register high sering dipakai sebagai service number pada
interrupt
 register al (8bit) sebagai register low merupakan tempat transit data
-. Register BX (Base register – 16 bit) berfungsi sebagai register basis untuk
mereferensikan lokasi memori atau lebih tepatnya menunjukan lokasi memori. Yang
dapat pula mengambil atau menulis langsung dari atau ke memori. Register bx terbagi
atas high dan low yaitu :
 register bh (8bit) sebagai register high
 register bl (8bit) sebagai register low
-. Register CX (Count register – 16 bit) berfungsi sebagai register basis untuk
mereferensikan lokasi memori atau lebih tepatnya menunjukan lokasi memori. Yang
dapat pula mengambil atau menulis langsung dari atau ke memori. Register bx terbagi
atas high dan low yaitu :
 register bh (8bit) sebagai register high
 register bl (8bit) sebagai register low
-. Register DX (Data register – 16 bit) berfungsi sebagai penampung isi hasil pembagian
16 bit. Merupakan pula register offset dari ds. Register dx juga menunjukkan nomor port
pada operasi port. Register ini juga merupakan register offset atau menyimpan alamat
data. Register dx juga terbagi atas high dan low yaitu :
 register dh (8bit) sebagai register high
 register dl (8bit) sebagai register low
atau fungsi register EAX, EBX, ECX, EDX pada Pentium :
-. Register EAX dirujuk sebagai register 32-bit (EAX), sebagai akumulator bit (AH dan
AL). Akumulator digunakan untuk instruksi-instruksi perkalian, pembagian beberapa
penyesuaian. Register EAX dapat juga menyimpan alamat offset sebuah lokasi dalam
sistem memori
-. Register EBX dirujuk sebagai register 32-bit (EBX), dapat dialamati sebagai
BX, BH, BL. Register BX dapat menyimpan alamat (base index) dan offset sebuah
lokasi memori dalam sistem memori semua versi mikroprosesor. Register EBX dapat
juga mengalamati data memori
-. Register ECX merupakan dirujuk sebagai register 32-bit (ECX), dan register
serbaguna yang juga dapat digunakan untuk instruksi (count) perhitungan. Register ECX
dapat juga menyimpan alamat offset data memori
-. Register EDX dirujuk sebagai register 32-bit (EDX) dan merupakan register
serbaguna yang dapat digunakan untuk menyimpan hasil (data) perkalian dan
menyimpan sisa dalam pembagian. Register ini juga mampu mengalamati data memori.
3. Gambar Program :
2000
Push PARAM 2
menempatkan parameter dalam stack
Mengambil parameter 2 masuk ke dalam stack dengan isi 2000
2006
Push PARAM 1
menempatkan parameter dalam stack
Mengambil parameter 1 masuk ke dalam stack dengan isi 2000 + 6 = 2006
2012
Call SUB 1
Memanggil SUB 1 dengan isi 2006 + 6 = 2012
2017
Pop Result
menyimpan hasil
Menghapus hasilnya dengan
Add ESP, 4
:
:
First Subroutine :
2100 SUB 1 :
Push EBP
:
:
:
2160
Call SUB 2
2165
POP ECX
:
:
Sampai subroutine 2 isi stacknya adalah 2165
Jadi isi stack dari slide pertemuan 14 hal 17 adalah 2165
Download