27
BAHASA HIMPUNAN

1109 Kul11a

Embed Size (px)

Citation preview

Page 1: 1109 Kul11a

BAHASA HIMPUNAN

Page 2: 1109 Kul11a

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

Page 3: 1109 Kul11a

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

Page 4: 1109 Kul11a

Perlaksanaan aturcara bahasa himpunan

Perpustakaan

Editor:Menulis aturcara bahasa himpunan

Kod sumber

Penghimpun

Kod Objek

Pemautan

Kod terlaksana

Perlaksanaan

Page 5: 1109 Kul11a

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

Page 6: 1109 Kul11a

[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

Page 7: 1109 Kul11a

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

Page 8: 1109 Kul11a

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)

Page 9: 1109 Kul11a

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

Page 10: 1109 Kul11a

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

Page 11: 1109 Kul11a

Medan Komen

Meningkatkan pemahaman aturcara Bermula dengan tanda ; Boleh mengandungi aksara bercetak,

termasuk ruang kosong. Contoh :

– ; ini adalah komen

Page 12: 1109 Kul11a

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

Page 13: 1109 Kul11a

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)

Page 14: 1109 Kul11a

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”)

Page 15: 1109 Kul11a

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)

Page 16: 1109 Kul11a

Pembolehubah

Setiap pembolehubah mempunyai jenis data dan alamat yang akan diumpukkan oleh aturcara

Diisytiharkan seperti– nama DB nilai-awal– nama DW nilai-akhir

Page 17: 1109 Kul11a

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)

Page 18: 1109 Kul11a

ii. Pembolehubah Perkataan

Pernyataan untuk mentakrif berbentuknamaDW nilai-awal

contoh:

WRD DW -2

Page 19: 1109 Kul11a

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

Page 20: 1109 Kul11a

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

Page 21: 1109 Kul11a

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

Page 22: 1109 Kul11a

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

Page 23: 1109 Kul11a

Gabungan aksara dan nombor juga dibenarkan

Cth:

MSGDB ‘HELLO’,0AH,0DH,’$’

sama dengan

MSG DB 48H,45H,4CH,4FH,0AH,0DH,24H

Page 24: 1109 Kul11a

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.

Page 25: 1109 Kul11a

Semua penggunaan 0AH boleh digantikan dengan LF dan memberikan hasil yang sama

Contoh:– MOV DL, 0AH

dan– MOV DL, LF

Page 26: 1109 Kul11a

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

Page 27: 1109 Kul11a

Struktur aturcara

Kod, data dan timbunan distrukturkan sebagai segemn-segmen aturcara

Akan diterjemahkan ke dalam segmen ingatan oleh penghimpun