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