ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Daudi Lazarus, S.Si, M.Eng.CompSysDept. ElectricalPontianak State PolytechnicSISTEM KOMPUTER
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.
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
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.
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
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]
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.
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
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
InstruksipentinglainnyaadalahAND,bit-by-bit operation, yang hanyaakanmenghasilkan 1 jikakedua bit operand bernilai 1.  sebagaicontoh, jika register $t2 berisi0000 0000 0000 0000 0000 0000 1101 0000 00002Dan register $t1 berisi0000 0000 0000 0000 0000 0011 1100 0000 00002Makasetelahmengeksekusiintruksi MIPS	and	$t0,$t1,$t2	#reg $t0=reg $t1 & $t2Nilai register $t0 akanmenjadi0000 0000 0000 0000 0000 0000 1100 0000 00002OPERASI LOGIKA
Berbedadenganoperasi AND, makaoperasi OR, bit-by-bit operation, yang menghasilkan 1 jikasalahsatudarikedua bit operand bernilai 1. Makasetelahmengeksekusiintruksi MIPS		or	$t0,$t1,$t2	#reg $t0=reg $t1 | $t2Nilai register $t0 akanmenjadi0000 0000 0000 0000 0000 0011 1101 0000 00002Operasi NOT, bit-by-bit operation, akanmenghasilkannilai yang berlawanandengannilai bit operand.  Sebagaicontoh register $t3 bernilai 0. Makasetelahmengeksekusiintruksi MIPS		nor	$t0,$t1,$t3	#reg $t0= ~ (reg $t1 | $t3)Nilai register $t0 akanmenjadi1111 1111 1111 1111 1111 1100 0011 1111 11112OPERASI LOGIKA
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.
Minggu kedua
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:
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.
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

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
  • 10. InstruksipentinglainnyaadalahAND,bit-by-bit operation, yang hanyaakanmenghasilkan 1 jikakedua bit operand bernilai 1. sebagaicontoh, jika register $t2 berisi0000 0000 0000 0000 0000 0000 1101 0000 00002Dan register $t1 berisi0000 0000 0000 0000 0000 0011 1100 0000 00002Makasetelahmengeksekusiintruksi MIPS and $t0,$t1,$t2 #reg $t0=reg $t1 & $t2Nilai register $t0 akanmenjadi0000 0000 0000 0000 0000 0000 1100 0000 00002OPERASI LOGIKA
  • 11. Berbedadenganoperasi AND, makaoperasi OR, bit-by-bit operation, yang menghasilkan 1 jikasalahsatudarikedua bit operand bernilai 1. Makasetelahmengeksekusiintruksi MIPS or $t0,$t1,$t2 #reg $t0=reg $t1 | $t2Nilai register $t0 akanmenjadi0000 0000 0000 0000 0000 0011 1101 0000 00002Operasi NOT, bit-by-bit operation, akanmenghasilkannilai yang berlawanandengannilai bit operand. Sebagaicontoh register $t3 bernilai 0. Makasetelahmengeksekusiintruksi MIPS nor $t0,$t1,$t3 #reg $t0= ~ (reg $t1 | $t3)Nilai register $t0 akanmenjadi1111 1111 1111 1111 1111 1100 0011 1111 11112OPERASI 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