31
DDC 2223 PERISIAN SISTEM BAB 3: BAHASA MESIN DAN BAHASA HIMPUNAN Oleh: Ms Noraziah R

OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Embed Size (px)

Citation preview

Page 1: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

DDC 2223 PERISIAN SISTEMBAB 3: BAHASA MESIN DAN BAHASA HIMPUNAN

Oleh: Ms Noraziah R

Page 2: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Terdapat dua jenis:

1. Bahasa aras rendah

◦ Bahasa komputer yang tidak dapat difahami oleh manusia

tetapi boleh difahami oleh komputer.

◦ Contohnya bahasa mesin (machine code) mempunyai

arahan-arahan dalam bentuk bit yang sukar untuk difahami

manusia.

◦ Fungsi bahasa ini ialah menghantarkan signal bit melalui get

logik, dan seterusnya mengawal input dan output

perkakasan.

BAHASA PENGATURCARAAN

Page 3: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

2. Bahasa aras tinggi

◦ Bahasa yang boleh difahami oleh manusia tetapi tidak

oleh komputer.

◦ Ia dicipta untuk memudahkan kerja-kerja mengaturcara.

◦ Oleh kerana ia tidak difahami oleh komputer maka ia

akan diterjemah kepada bahasa tahap rendah untuk

dibaca oleh komputer dengan bantuan pengkompil atau

pentafsir.

BAHASA PENGATURCARAAN

Page 4: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Contoh-contoh bahasa komputer:

◦ Aras Rendah

Bahasa mesin

Bahasa himpunan

◦ Aras Tinggi

Bahasa pengaturcaraan – contohnya C++

Bahasa penskripan – contohnya Python dan Perl

Bahasa penanda – bahasa penanda yang terkenal adalah

HTML

BAHASA PENGATURCARAAN

Page 5: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Ialah format arahan yang boleh didekod dan dilaksanakan secara terus oleh pemproses.

Ia mengandungi:◦ Kod operasi binari◦ Alamat mutlak ingatan dalam binari

BAHASA MESIN

Page 6: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Kategori bahasa aras rendah Merupakan perwakilan simbolik kepada

bahasa mesin yang sukar difahami manusia.

Satu arahan didalam bahasa himpunan menghasilkan satu arahan didalam bahasa mesin.

BAHASA HIMPUNAN

Page 7: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Mudah, tidak merumitkan –menggunakan mnemonics.◦ Cth: menggunakan simbol ST untuk arahan STORE dan

bukannya konfigurasi bit 01010000 Mengunakan alamat simbolik, bukan alamat

mutlak Mudah dibaca jika dibanding dengan bahasa mesin Terdapat direktif penghimpun (assembler

directives) atau operasi pseudo (pseudo-ops). Melalui direktif ini pengguna boleh membuat permintaan untuk servis yang dilakukan oleh penghimpun.

Kebaikan bahasa himpunan

Page 8: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Memerlukan penghimpun (assembler) untuk menterjemahkan aturcara sumber (yang ditulis dalam B.Himpunan) kepada kod objek

Kelemahan Bahasa Himpunan

Page 9: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Satu pernyataan B.Himpunan menyatakan arahan (instruction) atau komen.

Arahan adalah samada:

◦ Arahan mesin – iaitu penyataan sesuatu B.Himpunan yang mewakili satu

arahan mesin yang boleh dilaksanakan. Arahan ini menghasilkan kod

objek.

◦ Arahan Penghimpun – memberikan maklumat pada penghimpun atau

meminta penghimpun melakukan sesuatu kerja. Melainkan arahan untuk

mentakrif pemalar atau ruang storan, arahan ini tidak menghasilkan kod

objek.

◦ Arahan makro – arahan ini mengurangkan kerja pengaturcara kerana

setiap arahan ini mewakili satu jujukan arahan mesin atau arahan

penghimpun atau kedua-duanya sekali.

TIGA JENIS ARAHAN B.HIMPUNAN

Page 10: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Set askara yang boleh digunakan untuk arahan mesin atau

penghimpun mengandungi abjad, digit dan askara-askara khas:

◦ Abjad: A hingga Z

◦ Digit termasuk $,#, dan @

◦ Aksara-aksara khas : &, +, -, =, *, ( ), /

Simbol adalah satu jujukan 1 hingga 8 abjad dan digit.

Aksara pertama mestilah abjad (angka tidak dibenarkan).

Simbol-simbol boleh mewakili:

◦ Alamat – iaitu alamat storan

◦ Nama komponen : contoh mewakili nama daftar

TIGA JENIS ARAHAN B.HIMPUNAN

Page 11: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Simbol yang sah

Simbol yang tak sah

X 2ND (aksara pertama bukan abjad)

R5 15 (aksara pertama bukan abjad)

CONSTANT SECTION10(melebihi 8 aksara )

#12345 $DATA.1(tanda“.” adalah tidak dibenarkan)

@##$$@@ CAR_TAX (aksara “_” adalah tidak dibenarkan)

TIGA JENIS ARAHAN B.HIMPUNAN

Page 12: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Machine-op

◦ Merupakan arahan mesin – perlukan bait dan hasilkan

kod objek

◦ Juga dipanggil opkod (opcodes)

◦ Dalam bahasa himpunan ianya dinyatakan secara

simbolik, iaitu satu rentetan aksara (abjad)

◦ Rentetan aksara ini lazimnya menerangkan nama

operasi yang mewakili kod-kod operasi.

KOD OPERASI (OPERATION CODE)

Page 13: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

◦ Ia dipanggil mnemonics kerana ia menolong pengaturcara

mengingati makna-makna operasi yang diwakili.

Contoh: L mewakili Load,

ST mewakili Store,

A mewakili ADD

BALR mewakili BRANCH AND LINK

◦ Arahan direktif dan makro juga mempunyai

mnemonicsnya sendiri.

KOD OPERASI (OPERATION CODE)

Page 14: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Pseudo-op

◦ Arahan bahasa himpunan untuk operasi penghimpun

◦ Hanya untuk tujuan penghimpun dan tidak menghasilkan

sebarang kod objek

◦ Contoh: START Permulaan program

END Akhir program

USING Base register yang digunakan dan

kandungannya

DC Takrif pemalar (define constant)

DS Takrif storan (define storan)

KOD OPERASI (OPERATION CODE)

Page 15: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Terdiri daripada 4 medan yang dipisahkan oleh ruang kosong:

Kedudukan medan ini pada turus-turus mengikut piawai yang telah ditetapkan oleh pihak IBM.

FORMAT ATURCARA B.HIMPUNAN

1 8 9 10 13 14 15 25

Label Kad Operasi Operan-operan Komen

Turus-turus

Page 16: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Label merupakan nama simbolik yang

diberikan oleh pengaturcara untuk mewakili

lokasi ingatan yang mengandungi kod operasi

atau data.

Mesti bermula pada lajur pertama

Nilai-nilai yang boleh digunakan:

◦ Label-menandakan lokasi bagi sesuatu arahan

◦ Data-menandakan lokasi sesuatu data

Medan Label

Page 17: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Medan yang terpenting

Mesti wujud untuk setiap suruhan

Terdiri dari opcode,direktif atau mnemonics

Medan ini memberitahu kepada komputer atau

penghimpun apakah langkah atau tindakan yang patut

dilakukan.

Medan KOD OPERASI

Contoh: L R2,X memasukan nilai X ke dalam daftar R2 X DC F‘-22’ sediakan bagi X satu ruang storan yang bernilai -22

Page 18: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Mengikut piawaian yang telah ditetapkan medan untuk kod

operasi mestilah berada pada turus 10

Walaupon begitu, pengaturcara masih boleh meletakkan

medan kod operasi pada turus 2, dengan syarat turus 1

dibiarkan kosong.

Begitu juga dengan medan operan-operan.

kedudukan operan dengan kod operasi haruslah diselangi

dengan 1 ruang kosong sekiranaya operan hendak

diletakkan pada turus-turus sebelum turus 15.

Medan KOD OPERASI

Page 19: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Menyatakan data sumber atau data sasaran bagi kod operasi.

Bagi arahan makro atau direktif, medan ini memberi maklumat untuk operasi.

Bergantung kepada kod suruhan yang digunakan,medan ini boleh mengandungi

sama ada 2 operan, 1 operan atau tiada operan.

Jika terdapat 2 operan, ia diasingkan dengan tanda koma.

Data –data bagi sumber dan destinasi yang dinyatakan oleh medan operan

biasanya berupa kandungan bagi sebuah daftar am, lokasi storan (atau data

pemalar)

Medan OPERAN

Contoh: L R2,Y BR LOOP RET

Page 20: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Medan ini menerangkan setiap baris arahan

Pernyataan komen:

◦ Dimulakan dengan tanda *

◦ Medan ini diabaikan oleh penghimpun (tetapi muncul dalam senarai

penghimpun)

◦ Memberi penerangan terperinci terhadap aturcara, bermula medan diawal

baris

Panjang penyataan:

◦ Terdiri dari 1 hingga 71 lajur

◦ Sekiranya melebihi 71 lajur, letakkan tanda penyambung baris pada lajur 72

dan kemudian sambung semula pada lajur 26 pada baris berikutnya.

Medan KOMEN

Page 21: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Pemalar yang tidak bernama dengan simbol = dihadapannya

Contoh: X = X + 1

LITERAL

L 2,XA 2,ONEST 2,X

………X DC F‘100’ONE DC F‘1’

Literal:L 2,XA 2,=F‘1’ST 2,X

………X DC F‘100’

Page 22: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Adalah satu peseudo-op yang membolehkan satu

nama mempunyai sama makna @ nilai

(equivalent) dengan yang lain.

EQU

Contoh:

Label Kod Operasi Operan Komen

A EQU B Nilai A = B REG EQU 2 Nilai REG =

2

Nilai A akan berubah sekiranay nilai B berubah

Page 23: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

CONTOH ATURCARA B.HIMPUNAN PRINT NOGENSTART 1024

BEGIN BALR 12,0USING *,12L 1,AL 2,BAR 1,2LR 3,2M 2,EMPATST 2,CBR 14

A DC F‘2’B DC F‘3’C DS FEMPAT DC F‘4’

END BEGIN

*sila rujuk lampiran (struktur mesin IBM 360)

Page 24: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Daripada aturcara diatas, kita boleh perolehi

maklumat-maklumat berikut:

◦ Label-label iaitu BEGIN,A,B,C, dan EMPAT

◦ Arahan-arahan penghimpun dan fungsi-fungsi

yang akan dilakukan oleh penghimpun.

◦ Arahan-arahan mesin format RR iaitu BALR,AR,LR,

dan BR disamping arahan mesin format RX iaitu

L,M dan ST

CONTOH ATURCARA B.HIMPUNAN

Page 25: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Arahan-arahan penghimpun dan fungsi-fungsi yang akan dilakukan oleh penghimpun.

CONTOH ATURCARA B.HIMPUNAN

PRINTMengawal cetakan listing (output daripada penghimpun

selepas menghimpun aturcara). Listing ini akan

menunjukkan aturcara asal bahasa himpunan yang ditulis

serta sebarang ralat jika ada

STARTMemberi tahu penghimpun alamat permulaan untuk

aturcara

USINGMemberitahu penghimpun daftar nama yang akan

digunakan bagi menyimpan alamat asas.(disimpan dalam

daftar umum12)

Page 26: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

CONTOH ATURCARA B.HIMPUNAN

DSMemberitahu penghimpun untuk mentakrif storan untuk

label. Operan untuk arahan ini akan menyatakan saiz

storan yang diperlukan

DCSama seperti DS tetapi nilai diletakkan ke dalam storan

ENDArahan ini akan menyatakan tamat aturcara b.himpunan.

Operan yang akan diberikan akan menandakan lokasi

permulaan aturcara kod objek. Sekiranya ada label yang

diletakkan sebagai operan, alamat yang berkaitan dengan

labe; ini akan dijadikan alamat permulaan. Sekiranay tiada,

ia akan merujuk kepada bait permulaan aturcara objek

Page 27: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

CONTOH KANDUNGAN SEBAGAI SEBAHAGIAN DARIPADA INGATAN

000… … ..0

0000… … 1

1111…111

1Bytes=Bits2

24

24 bits Ingatan utama

1 A B 3 7 0

0001 1010 1011 0011 0111 0000

4 x 6 = 24 bits

Alamat Kandunagan(HEX) Kandungan (Binari)1AB370 5C 0101 11001AB371 72 0111 0010

Page 28: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

MENGIRA LOKASI DIDALAM ATURCARA B.HIMPUNAN

Lokasi Bahasa Mesin Aturcara Bahasa Himpunan

PRINT NOGEN000400 START 1024000400 05C0 BEGIN BALR 12,0

USING *,12000402 5810 C012 L 1,A000406 5820 C016 L 2,B00040A 1A12 AR 1,200040C 1832 LR 3,200040E 5C20C01E M 2,EMPAT000412 07FE BR 14000414 00000002 A DC F‘2’000418 00000003 B DC F‘3’00041C C DS F000420 00000004 EMPAT DC F‘4’

END BEGINContoh Aturcara A

Page 29: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

Cara mengira lokasi ialah seperti berikut:

i. Dapatkan alamat mula aturcara daripada arahan START. Di

dalam contoh diatas, alamatnya ialah 1024(desimal) atau

000400 (heksadecimal)

ii. Bagi mendapatkan alamat berikut, kita campurkan alamat

semasa dengan saiz arahan mesin/storan label.

iii. Sebagai contoh, bagi mendapatkan alamat untuk arahan

L 2,B

Kita campurkan alamat semasa, iaitu 000402 dengan saiz arahan L,4 bait

dan memperolehi 000406.

MENGIRA LOKASI DIDALAM ATURCARA B.HIMPUNAN

Page 30: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

iv. kesemua arahan penghimpun tidak memberi kesan keatas

pengiraan lokasi kecuali DS dan DC.

v. Kedua-dua arahan penghimpun ini mentakrifkan storan untuk

label.

vi. Pengiraan lokasi untuk label-label yang ditakrifkan oleh arahan-

arahan ini bergantung kepada saiz storan yang dinyatakan.

vii. Sebagai contoh,

A DC F‘2’ -arahan DC menyatakan “Fullword”

Label a mempunyai ruang storan 4 bit.

MENGIRA LOKASI DIDALAM ATURCARA B.HIMPUNAN

Page 31: OK Bab 3 - Bahasa Mesin & Bahasa Himpunan - Eitd

TQ ^_^