ini adalah bagian kedua dari mata kuliah sistem komputer
1 of 16
Downloaded 36 times
More Related Content
Minggu kedua
1. Daudi Lazarus, S.Si, M.Eng.CompSysDept. ElectricalPontianak State PolytechnicSISTEM KOMPUTER
2. REPRESENTASI INSTRUKSI DALAM KOMPUTERManusiaselaluberpikirmengenaiangkadalam basis 10, akantetapiangkadapatdisajikandalam basis apapun. Contoh 12310 = 11110112Sejak register merupakanbagianpentingdarisemuainstruksi, harusadakonversiuntukmemetakannama register keangka. Dalambahasaasembler MIPS, register $s0 hingga $s7 dipetakanpada register 16 hingga 23, dan register $t0 hingga $t7 dipetakanpada register 8 hingga 15. sehingga, $s0 berarti register 16, $s1 berarti register 17, dst; $t2 berarti register 10, $t7 berarti register 15, dst.
3. REPRESENTASI INSTRUKSI DALAM KOMPUTERInstruksi MIPS asliadd $t0,$s1,$s2RepresentasidesimalSetiapsegmeninstruksidisebutfieldField pertamadanterakhir (dalamkasusiniberisi 0 dan 32) adalahkombinasi yang menyatakanbahwaoperasi yang akandilakukanadalahpenjumlahanField keduamenyatakan operand pertama ($s1=17)Field ketigamenyatakan operand ketiga ($s2=18)Field keempatmenyatakannomor register yang akanmenerimahasilpenjumlahan ($t0 = 8)Field kelimatidakdigunakanmakadiset 0
4. MIPS FIELDField-field yang adadi MIPS diberinama, agar mudahdidiskusikan 6 bit 5 bit 5 bit 5 bit 5 bit 6 bitOp : operasidasardariinstruksi, biasadisebutopcoders : register pertamadarisumberrt : register keduadarisumberrd : register tujuan, mendapathasildarioperasi.shamt : shift amount. Sampaipadawaktunya, maka field iniakanbernilai 0funct : function. Field iniakanmemilihoperasi yang ditetapkanoleh op fielddanbiasadikenalsebagai function code.
5. MIPS FIELDFormat sebelumnyadikenalsebagaitipe R (khususuntuk Register) atauR-format. Tipekeduadikenalsebagaitipe I (untukImmediate) atauI-format, digunakanuntukinstruksi immediate dan transfer data. 6 bit 5 bit 5 bit 16 bitReg = nomor register dari 0 hingga 31Alamat = alamat 16 bit- = field tidaktersediapada format ini
6. MENERJEMAHKAN BAHASA ASEMBLER MIPS KE BAHASA MESINJika $t1 adalah base dan $s2 berhubungandengan h, penugasan A[300] = h + A[300];Akandikompilemenjadilw $t0,1200($t1) #register sementara $t0 mendapat A[300] add $t0, $s2,$t0 #register sementara $t0 mendapath+A[300]sw $t0,1200($t1) #menyimpan h + A[300] kembalike A[300]
7. Instruksilwdiidentifikasioleh 35 pada field pertama (op). Register base 9 ($t1) dispesifikasipadafieldkeduars. Register tujuan 8 ($t0) dispesifikasipada field ketiga rt. Offset untukmemilih A[300] (1200 = 300 x 4) ditemukanpada field terakhir (alamat)Instruksiadddiikutioleh 0 pada field pertama (op), dan 32 pada field terakhir (funct). Tiga register operand (18,8,8) ditemukanpada field kedua, ketigadankeempatberhubungandengan $s2, $t0, dan $t0Instruksiswditentukanoleh 43 pada field pertama, dansisanyasamaseperti yang telahdijelaskansebelumny.
8. Operasipertamadisebutshift. Iniakanmemindahkansemua bit dalam word kekiriataukanan, mengisi bit kosongdengan 0. sebagaicontoh register $s0 berisi0000 0000 0000 0000 0000 0000 0000 0000 10012 = 910Makaketikainstruksi shift left by 4 diekseskusi, makanilainyaakanmenjadi0000 0000 0000 0000 0000 0000 0000 1001 0000 2 = 14410Namainstruksipada MIPS adalahshift left logical (sll) danshift right logical (srl)OPERASI LOGIKA
9. Instruksiuntukoperasidiatas, asumsikanhasilnyaakandiberike register $t2sll $t2, $s0, 4 #reg $t2 = reg $s0 << 4 bitSebelumnya, dilakukanpenundaanpenjelasantentang field shamtpada R format, inikepanjangandarishift amount yang digunakanpadainstruksi shift. Untukinstruksidiatas, format MIPSnyaadalahNilaislladalah 0 pada field op danfunct, rd berisi $t2, rtberisi $s0 danshamtberisi 4. field rstidakdigunakansehinggadi set 0OPERASI LOGIKA
12. PERINTAH PERCABANGANPerintahPercabanganbiasanyamenggunakan statement if, yang terkadangdikombinasikandengan statement go to danlabel. Instruksi MIPS untukpercabanganadalahBeq register1, register2, L1instruksiiniberartipergeike statement berlabel L1 jikanilai register 1 samadengannilai register 2. iniadalahsingkatandaribranch if equal.Bne register1, register2, L1instruksiiniberartipergeke statement berlabel L1 jikanilai register 1 tidaksamadengannilai register 2. iniadalahsingkatandaribranch if not equal.
14. PERINTAH PERCABANGANBerdasarkan flowchart dapatterlihatbahwadiinginkanbeq, namunkodeakanlebihefisienjikadilakukanpengetesanberdasarkankondisiberlawananbne $s3,$s4,Else #go to Else if i≠jInstruksiberikutnyaadalahoperasitunggal add $s0,$s1,$s2 #f = g+h (berartii= j)Selanjutnyapadaakhir statement if, adaunconditional branch, untukitudigunakaninstruksi jump j Exit #go to ExitLakukanpemeriksaanpadacabangsatunya, beri label Else Else: sub $s0,$s1,$s2 # f = g-h (berartii≠j) Exit:
15. PRBuatlahinstruksi MIPS untuk program swap dibawahini:temp = v[k];v[k] = v[k+1]v[k+1] = temp;Petunjuk: ingatpengalamatanmemoriuntuk MIPS mengacupadaalamat byte, dan word terbagiatas 4 byte. Untuknilai index harusdikalidengan 4, bukan 1.
16. PRBuatlahkomentaruntukinstruksi MIPS dibawahini, asumsikanbahwa $a0 dan $a1 digunakanuntuk input danberisi integer a dan b, dan $v0 digunakansebagai output:add $t0, $zero,$zeroloop: beq $a1,$zero, finishadd $t0,$t0,$a0sub $a1,$a1,1j loopfinish: addi $t0,$t0,100add $v0, $t0,$zero