Upload
madzani-nusa
View
838
Download
3
Embed Size (px)
Citation preview
BAHASA HIMPUNAN
Penghimpun dan PengkompilAturcara A Pascal
Pengkompil
Versi A Bahasa Himpunan
Versi A Kod Mesin Versi sebenar yang akan dilaksanakan
Penghimpun
Hubungan antara bahasa aras tinggi dan bahasa aras rendah
Kelebihan Pengaturcaraan Bahasa Himpunan Menyediakan lebih kawalan dalam
mengendalikan keperluan perkakasan tertentu
Menjana modul perlaksanaan yang lebih padat dan kecil
Masa perlaksanaan yang lebih cepat
Perlaksanaan aturcara bahasa himpunan
Perpustakaan
Editor:Menulis aturcara bahasa himpunan
Kod sumber
Penghimpun
Kod Objek
Pemautan
Kod terlaksana
Perlaksanaan
Sintak Bahasa Himpunan
Terdapat dua jenis penyataan– Arahan:contohnya MOV dan ADD, yang
akan diterjemahkan oleh penghimpun kepada kod mesin
– Petunjuk:mengarahkan penghimpun untuk melaksanakan kerja yang spesifik seperti mencipta prosedur atau mengalokasikan ruang memori untuk pembolehubah
[LABEL/NAMA] OPERASI [OPERAN] [;KOMEN] Contoh penyataan:
– Petunjuk: MAIN PROC ;nama,operasi– Arahan : MOV AX,O ;operasi,2 operan
Dapat dilihat bahawa penyataan arahan bahasa himpunan adalah bentuk
KOD OPERASI OPERAN
Sintak Bahasa Himpunan
Medan Nama/Label Digunakan untuk namakan
arahan,nama prosedur atau nama pembolehubah
Panjang daripada 1-31 aksara Boleh mengandungi huruf,nombor, dan
aksara khas seperti ? . @ _ $ %. Ruang kosong tidak dibenarkan dan
aksara khas mestilah pada permulaan nama
Medan Nama/Label
Contoh nama yang sah– KAUNTER1– @aksara– JUMLAH_DIGIT– $100– OK?– .CUBA
Contoh nama yang tidak sah– DUA
PERKATAAN(ruang kosong)
– 3abc(aksara awal nombor)
– A42.05(“.” bukan aksara pertama)
Medan Operasi Bagi arahan,
mengandungi kod operasi (opkod) dalam bentuk mnemonics (gabungan unik huruf-huruf)
Penghimpun akan menterjemahkan kod operasi simbolik kepada kod operasi/opkod bahasa mesin
Contoh opkod ialah MOV, ADD dan SUB.
Bagi direktif, mengandungi kod operasi pseudo(pseudo-op)
Tidak akan diterjemahkan kepada kod mesin tetapi hanya memberitahu penghimpun untuk melakukan sesuatu
Medan Operan Untuk arahan, medan operan
menspesifikasikan data yang akan dilaksanakan oleh operasi
Boleh mengandugi 0, 1 atau 2 operan Bagi yang mengandugi 2 operan, operan 1
adalah operan destinasi (terdiri daripada daftar atau lokasi ingatan di mana hasil akan disimpan)
Operan kedua ialah operan sumber
Medan Komen
Meningkatkan pemahaman aturcara Bermula dengan tanda ; Boleh mengandungi aksara bercetak,
termasuk ruang kosong. Contoh :
– ; ini adalah komen
Data Aturcara
Penghimpun menterjemahkan semua perwakilan data ke dalam bentuk nombor ninari
Dalam aturcara bahasa himpunan data boleh diwakilkan dalam bentuk binari, desimal, heksadesimal dan aksara
Nombor
Di tulis dalam bentuk jujukan bit diikuti dengan “B” atau “b” (optional)
Begitu juga dengan nombor heksa, desimal
Contoh: Perwakilan sah
– 11011 (Desimal)– 11011B (Binari)– -2322D (Desimal)
Perwakilan tidak sah– 1,234 (mengandungi aksara
bukan digit)– 1B4D (tiada B dalam nombor
desimal)
Aksara
Harus ditulis dalam kurungan ‘ ’ atau “ ” Akan diterjemahkan oleh penghimpun
kepada bentuk ASCII yang sepadan dengannya
Contoh: penggunaan “A” adalah sama dengan 41h (kod ASCII bagi “A”)
Pseudo-op Penakrifan pseudo-op
Pseudo-op Ditakrifkan sebagai
DB Define byte
DW Define word
DD Define doubleword (2 perkataan berturutan)
DQ Define quadword (4 perkataan berturutan)
Pembolehubah
Setiap pembolehubah mempunyai jenis data dan alamat yang akan diumpukkan oleh aturcara
Diisytiharkan seperti– nama DB nilai-awal– nama DW nilai-akhir
i. Pembolehubah Bait– Pernyataan untuk mentakrif berbentuk
nama DB nilai-awal– Cth: ALPHA DB 4– Satu ruang bersaiz 1 bait akan disediakan dgn
nama ALPHA dan dimulakan dgn nilai 4– Arahan DUP (duplicate) – untuk menyalin
semua aksara mengikut bilangan yang diberi, tanpa menulis berulang kali
– Cth:• DATA1 DB OFFH,OFFH,OFFH,OFFH ditulis
sebagai• DATA1 DB 4 DUP (OFFH)
ii. Pembolehubah Perkataan
Pernyataan untuk mentakrif berbentuknamaDW nilai-awal
contoh:
WRD DW -2
Tatasusunan
Satu turutan ingatan samada dalam bait atau perkataan
Cth: utk definisi 3-bait tatasusunan B_ARRAY yang memberi nilai awalan 10h, 20h dan 30h ditulis
• B_ARRAY DB 10H, 20H, 30H
Andaikan penghimpun menyediakan alamat offset 0200H kepada B_ARRAY, ingatan adalah seperti berikut
Simbol Alamat Kandungan
B_ARRAY 200H 10H
B_ARRAY 201H 20H
B_ARRAY 202H 30H
Jika tatasusunan menggunakan DW, andaikan penghimpun menyediakan alamat offset 0300H kepada W_ARRAY:
W_ARRAY DW 1000, 40, 50, 523Simbol Alamat Kandungan
W_ARRAY 0300H 1000D
W_ARRAY+2 0302H 40D
W_ARRAY+4 0304H 50D
W_ARRAY+6 0306H 523D
Rentetan aksara Tatasusunan kod ASCII boleh dilihat sebagai satu
rentetan aksara Cth:
HURUF DB ‘ABC’
sama dengan
HURUF DB 41H, 42H, 43H Penggunaan huruf kecil dan huruf besar adalah
berbeza Cth :
HURUF DB ‘ABC’ = HURUF DB 41H,42H,43H
HURUF DB ‘abc’ = HURUF DB 61H,62H,63H
Gabungan aksara dan nombor juga dibenarkan
Cth:
MSGDB ‘HELLO’,0AH,0DH,’$’
sama dengan
MSG DB 48H,45H,4CH,4FH,0AH,0DH,24H
Pemalar
Nama simbolik akan diberikan kepada pemalar yang digunakan
Arahan EQU(equates) digunakan Sintak : nama EQU pemalar Contoh pernyataan
LF EQU 0AH
Pernyatan ini mengumpukkan nama LF kepada 0AH (kod ASCII) untuk line feed.
Semua penggunaan 0AH boleh digantikan dengan LF dan memberikan hasil yang sama
Contoh:– MOV DL, 0AH
dan– MOV DL, LF
Simbol pada sebelah kanan EQU boleh terdiri daripada rentetan aksara
Contoh:
PROMPT EQU “TAIP NAMA ANDA” Pernyataan
MSG DB PROMPT
memberi hasil yang sama seperti
MSG DB “TAIP NAMA ANDA” Tiada ruang ingatan untuk arahan EQU
Struktur aturcara
Kod, data dan timbunan distrukturkan sebagai segemn-segmen aturcara
Akan diterjemahkan ke dalam segmen ingatan oleh penghimpun