DDC 2223 PERISIAN SISTEMBAB 3: BAHASA MESIN DAN BAHASA HIMPUNAN
Oleh: Ms Noraziah R
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
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
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
Ialah format arahan yang boleh didekod dan dilaksanakan secara terus oleh pemproses.
Ia mengandungi:◦ Kod operasi binari◦ Alamat mutlak ingatan dalam binari
BAHASA MESIN
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
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
Memerlukan penghimpun (assembler) untuk menterjemahkan aturcara sumber (yang ditulis dalam B.Himpunan) kepada kod objek
Kelemahan Bahasa Himpunan
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
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
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
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)
◦ 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)
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)
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
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
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
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
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
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
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’
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
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)
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
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)
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
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
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
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
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
TQ ^_^