Anda di halaman 1dari 7

E4160 BAB 3 PENGHIMPUN 3.

0 PENGENALAN

PENGENALAN KEPADA BAHASA

Bahasa-bahasa komputer dikelaskan kepada 3 bahagian iaitu: i. Bahasa Mesin (Machine Language), - FORTRAN ii. Bahasa Penghimpun (Assembly Language) Z80, 8085, 6800, 68000 dll. iii. Bahasa Tahap Tinggi (High Level Language) PASCAL, COBOL, C, C++ 3.1 Pengenalan kepada bahasa mesin, bahasa penghimpun dan bahasa tahap tinggi. i. Bahasa Mesin (Machine Language), - FORTRAN - Merupakan bahasa penghimpun tahap rendah kerana berorientasikan mikropemproses. - Menggunakan kombinasi bit 1 dan 0 yang berasaskan kepada nombor penduaan. Nombornombor ini dikenali sebagai opkod (kod operasi). Kod-kod ini hanya boleh difahami dan diuruskan oleh mikropemproses sahaja. - Ada opkod yang boleh terus dilaksanakan dan ada opkod yang memerlukan maklumat tambahan yang dikenali sebagai operand (kendalian) untuk dilaksanakan. Gabungan dari opkod dan operand ini dikenali sebagai suruhan (instruction) - Set suruhan adalah senarai suruhan-suruhan yang boleh dilaksanakan. Setiap mikropemproses mempunyai set suruhan yang berbeza. - Semua bahasa komputer yang lain perlu ditukarkan kepada kod mesin sebelum aturcaa dilaksanakan kerana komputer hanya memahami bahasa mesin sahaja. Kelebihan dan kelemahan menggunakan bahasa mesin Kelebihan Kelemahan lebih pantas berbanding bahasa penulisan atrucara yang menjemukan penghimpun dan bahasa tahap tinggi dan tidak mesra pengguna kerana hanya kerana tidak memerlukan penghimpun terdiri daripada kod-kod penduaan dan (Assembler), pengkompil (Compiler) kod-kod perenambelas. atau penterjemah (translator) Set suruhan yang digunakan tidak menggunakan saiz ingatan paling menyamai bahasa pertuturan manusia sedikit Tidak digunakan secara meluas kerana fungsinya terhad ii. Bahasa Penghimpun (Assembly Language) Z80, 8085, 6800, 68000 dll. - Dalam membangunkan aturcara, bahasa penghimpun digunakan untuk mengatasi masalah kerumitan menulis aturcara menggunakan kod-kod perduaan. - Bahasa penghimpun terdiri daripada mnemonic-mnemonik atau kod-kod yang lebih mudah untuk diingat kerana ianya mirip kepada Bahasa Inggeris mudah. - Setiap opkod mempunyai mnemonic tersendiri, contoh kod operasi 01001111 adalah ditafsirkan sebagai CLR A (Clear Accumulator) sebagai mnemoniknya. - Mnemonik terdiri daripada 3 atau 4 huruf yang dapat memberikan gambaran kepada pengguna mengenai operasi yang akan dilaksanakan olehnya. Contoh, MVI bermaksud Move Immediate, MOV A,C bermaksud memindahkan data dari daftar C (register C) ke daftar A (register A). - Semua bahasa penghimpun perlu ditukarkan kepada kod-kod mesin menggunakan assembler dan proses pertukaran tersebut dikenali sebagai handcoding assembler.

E4160 BAB 3 PENGHIMPUN -

PENGENALAN KEPADA BAHASA

Kelebihan dan kelemahan menggunakan bahasa penghimpun

Kelebihan Kelemahan Penulisan aturcaranya yang mudah Bahasa penghimpun hanya boleh digunakan kerana terdiri daripada mnemonic yang oleh jenis-jenis komputer tertentu sahaja mudah difahami oleh pengguna setiap p mempunyai bahasa penghimpun Pengguna boleh yang unik menjejak/menyahpepijat (debug) aturcara Memerlukan Assembler untuk menukarkan kerana ia terdiri daripada mnemonicbahasa penghimpun kepada kod-kod mesin. CPU mnemonik terpaksa menyediakan ruang yang khas untuk Boleh digunakan untuk pelbagai menyimpan penghimpun tersebut. aplikasi seoerti penyambungan kepada Pengguna perlu memahami rekabentuk sistem digital ataupun analog. senibina bagi setiap mikropmproses untuk mengetahui kedudukan daftar-daftar yang terdapat sesustu mikropemproses iii. Bahasa Tahap Tinggi (High Level Language) PASCAL, COBOL, C, C++ - Terdiri daripada arahan arahan yang hampir kepada bahasa Inggeris. Arahannya menggambarkan apakah operasi yang perlu dilakukan - Contoh arahan bahasa tahap tinggi ialah read, write, print, if, then, else dll - Semua bahasa tahap tinggi perlu ditukarkan kepada kod-kod mesin menggunakan translator (penterjemah) dan compiler (pengkompil) Translator (penterjemah) - Merupakan aturcara atau alat yang boleh menterjemahkan kenyataan atau kod daripada satu bahasa kepada satu bahasa yang lain. Contoh penterjemah ialah penghimpun, penyusun dan pentafsir. - Digunakan untuk menyemak baris-baris aturcara dalam nahasa tahap tinggi secara baris demi baris dan terus menukarkannya kepada kod mesin dan melaksanakannya. - Proses penterjemahan akan terhenti sekiranya terdapat kesalahan dalam aturcara dan akan menyambung semula semakan apabila kesalahan telah dibetulkan. Compiler(Pengkompil) - Aturcara khas yang direka untuk menukarkan bahasa yang disediakan dengan bahasa tahap tinggi kepada kod mnemonic sebelum ianya dilaksanakan oleh komputer. - Compiler akan menterjemahkan setiap pernyataan kepada kod-kod mesin dan menyimpan seluruh aturcara kedalam storan sebelum ianya dilaksanakan. 3.2 i. ii. iii. Istilah-istilah penting: Mnemonik, - singkatan arahan dari bahasa Inggeris mudah yang digunakan dalam bahasa penghimpun contoh, MOV, ADD, SUB, LDA dll Operand (Operasi kendalian) - maklumat mengenai data yang akan dilaksanakan oleh kodkod terternu - MOV A,B A & B ialah operand dimana ianya menunjukkan arahan ini adalah untuk menyalin data dari register B ke dalam register A kod mesin, - Menggunakan kombinasi bit 1 dan 0 yang berasaskan kepada nombor penduaan untuk menulis aturcara pada mikropemproses uruskan oleh mikropemproses sahaja. Contoh 11110110 ORI, 011100110 - HLT 2

E4160 BAB 3 PENGENALAN KEPADA BAHASA PENGHIMPUN iv. Label medan pertama dalam bahasa penghimpun, digunakan sebagai alamat atau data ke dalam medan operand suruhan lain. Label selalu digunakan dalam suruhan JUMP, CALL, Cabang dll. v. Komen penerangan kepada baris aturcara vi. Operasi Pseudo arahan kepada penghimpun untuk melaksanakan sesuatu operasi, contoh ORG (untuk menetapkan alamat dimana aturcara bermula), IF, ELSE, END, dll 3.3 Klasifikasikan/ Jenis-jenis set arahan 8085; i. Pemindahan data/pergerakan data - proses memindahkan data dari satu lokasi ingatan ke satu lokasi ingatan yang lain tanpa mengubah data pada lokasi asal. - Contoh operasi pemindahan data: i. MVI A, 2AH arahan untuk memasukkan 8 bit data ke dalam register A. selepas arahan ini dilaksanakan kandungan asal register A akan digantikan dengan nilai 2AH. ii. iii. iv. v. MOV B, A arahan untuk memindahkan data dari register A ke dalam register B MOV A, B arahan untuk memindahkan data dari register B ke dalam register A OUT 01H menghantar data keperanti output, IN 07H menerima data dari peranti input dan disimpan di dalam register A LXI B, 2050H arahan untuk memasukkan 16 bit data ke dalam pair register BC. selepas arahan ini dilaksanakan kandungan asal register B dan C akan digantikan dengan nilai 20H dan 50H . LDA 2050 H Menyalin data dari lokasi ingatan 2050H ke dalam register A.

vi. ii.

Suruhan Aritmetik ( -, +, tambah, kurang) Contoh oprasi aritmetik i. Operasi Campur ADD B kandungan data register A ditambahkan dengan kendungan data register B dan keputusan disimpan dalam register A ( A + B A) ADI 37H kandungan data register A ditambahkan dengan nilai 37H dan keputusan disimpan dalam register A ( A + 37H A) ADD M kandungan data register A ditambahkan dengan nilai yang terdapat pada lokasi ingatan dan keputusan disimpan dalam register A ( A + (HL)r A) ii. Operasi Tolak SUB B kandungan data register A ditolakkan dengan kendungan data register B dan keputusan disimpan dalam register A ( A - B A) SUI 7FH kandungan data register A ditolakkan dengan nilai 7FH dan keputusan disimpan dalam register A ( A 7FH A) SUB M kandungan data register A ditolakkan dengan nilai ynag terdapat pada lokasi ingatan dankeputusan disimpan dalam register A ( A - (HL)r A) Operasi Tambah 3

iii.

E4160 BAB 3 PENGENALAN KEPADA BAHASA PENGHIMPUN INX H kandungan data pair register H ditambahkan dengan nilai 1 ( HL + 1 HL) INR B kandungan data register B ditambahkan dengan nilai 1 ( B + 1 B) INR M kandungan data pada lokasi ingatan ditambahkan dengan nilai 1 ((HL) r + 1 (HL)r) iv. Operasi Kurang DCX B kandungan data pair register B dikurangkan dengan nilai 1 ( BC - 1 BC) DCR B kandungan data register B dikurangkan dengan nilai 1 ( B - 1 B) DCR M kandungan data pada lokasi ingatan dikurangkan dengan nilai 1 ((HL)r + 1 (HL)r) Operasi logik (AND, OR, Exclusive-OR) - Kandungan accumulator dan data di ingatan boleh dibandingkan dengan menggunakan suruhan logikal dan keputusan operasi akan disimpan dalam accumulator. - Contoh ANA B, ANA C, ANI 23H, ORA B, ORI 34H, XRA B, XRI 55 H Putaran dan anjakan - Suruhan ini digunakan untuk memutarkan kandungan accumulator 1 bit kekiri atau kekanan. Carry flag akanmenjadi sebahagian dari daftar putaran bersama dengan kendalian (nilai didalam Accumulator) - Contoh; RLC, RAL, RRC, RAR Cabang - Suruhan cabang akan mengubah kandungan pada PC (Program Counter) mikropemproses akan lompat beberapa nombor lokasi ingatan bagi melaksanakan program baru ( subroutine) atau kembali ke program asal. - Suruhan cabang terdiri daripada suruhan bersyarat dan suruhan tak bersyarat. - Pada suruhan cabang tak bersyarat, kandungan PC tidak ditukar. Contoh JMP, CALL, RET - Pada suruhan cabang bersyarat, kandungan PC hanya akan bertukar apabila bit bendera yang disemak menyatakan ianya betul berlaku. Antara keadaan itu ialah zero, not zero, carry, not carry, parity odd, parity even, plus, minus. - Contoh susuhan bersyarat: JUMP CALL RETURN JZ CZ RZ JNZ CNZ RNZ JC CC RC JNC CNC RNC JPE CPE RPE JPO CPO RPO JP CP RP JM CM RM Penunjuk tindan (Stack Pointer) - Tindan merupakan suatu kawasan ingatan yang dikenalpasti oleh pengaturcara sebagai tempat simpanan maklumat sementara. Menggunakan konsep LIFO (Last In First Out) - penunjuk tindan mengandungi alamat ingatan teratas tindanan dimana data diletakkan dan diambil secara LIFO. 4

iii.

iv.

v.

vi.

E4160 BAB 3 PENGHIMPUN

PENGENALAN KEPADA BAHASA

FFFD FFFE FFFF SP 1. Permulaan tindan ditakrifkan di dalam aturcara menggunakan arahan LXI SP (Load Satck Pointer) masukkan 16 bit alamat penunjuk tindan. Contoh LXI SP, FFFFH setkan SP ke lokasi ingatan FFFFH. 2. Setelah SP dikenalpasti, penyimpanan data bermula pada alamat ingatan sebelum alamat SP. Contoh LXI SP, FFFFH, maka alamat data disimpan bermula pada alamat FFFEH dan disambung pula dengan FFFDH. 3. Maklumat disimpan pada tindan dengan arahan PUSH dan diambil dari tindan menggunakana arahan POP. Kedua-dua arahan ini berfungsi untuk pair register sahaja. Contoh arahan untuk simpan data ke tindan dan ambil data dari tindan: LXI SP, FFFFH LXI B, 25ACH PUSH B . . . POP B Kandungan pada tindan selepas arahan PUSH B B 25H 1 2 C ACH FFFD FFFD FFFE FFFF - decrement SP (SP - 1) - salin maklumat dalam register B ke lokasi ingatan yang ditunjukkan oleh penunjuk tindan iaitu FFFE H - decrement SP (SP 1) salin maklumat dalam register C ke lokasi ingatan yang ditunjukkan oleh penunjuk tindan FFFD H Kandungan pada tindan selepas arahan POP B 5 AC 25 SP FFFE FFFF AC 25 SP 1 B 25H 2 C ACH

- salin maklumat pada lokasi ingatan FFFD H ke dalam register C - Increament SP (SP + 1) SP = FFFE H - salin maklumat pada lokasi ingatan FFFE H ke dalam register B - Increament SP (SP + 1) SP = FFFF H

E4160 BAB 3 PENGHIMPUN

PENGENALAN KEPADA BAHASA

4. PSW (Program Status Word) melibatkan pair register dari accumulator dan Flag register. Arahan PUSH PSW digunakan untuk masukkan data dari accumulator dan flag register ke tindan. Arahan POP PSW digunakan untuk mengambil semula data dari tindan ke Accumulator da nflag register.

Daftar status/bendera 8051 CY AC RS1 RS0 OV P

CY-carry flag : set apabila hasil operasi aritmetik terdapat Carry AC-auxiliary carry : set apabila terdapat carry dari bit D3 ke bit D4 P-Parity flag : set bila bilangan bit 1 hasil operasi terakhir aritmetik/logik adalah ganjil OV-overflow flag : set bila terdapat limpahan pada operasi bit bertanda RS1 & RS0: diguakan untuk register bank untuk RAM 3.4 Klasifikasikan/ Jenis-jenis set arahan 8051; i. Pemindahan data/pergerakan data - Contoh operasi pemindahan data: a. MOV A, #2AH arahan untuk memasukkan 8 bit data ke dalam register A. selepas arahan ini dilaksanakan kandungan asal register A akan digantikan dengan nilai 2AH. b. ke dalam register A MOV A, R1 arahan untuk memindahkan data dari register R1

c. MOV A, 54H arahan untuk memindahkan data dari lokasi ingatan 54H ke dalam register A d. ke dalam register R1 ii. MOV R1, A arahan untuk memindahkan data dari register A

Suruhan Aritmetik ( -, +, tambah, kurang) Contoh operasi aritmetik ADD A, R1 ( A + R1 A) ADD A, #37H ( A + 37H A) SUBB A, R1 ( A R1 A) SUBB A, #7FH ( A 7FH A) INC A (A + 1 A) INC R1 ( R1 + 1 R1) DEC A ( A - 1 A) DEC R1 ( R1 - 1 R1) 6

E4160 BAB 3 PENGHIMPUN

PENGENALAN KEPADA BAHASA

iii. Operasi logik (AND, OR, Exclusive-OR) - ANL A,R2, ANL A, #37H, ORL A,R3, ORL A, #56H, XRL A,R2, XRL A, #56H. iv. v. Putaran dan anjakan - Contoh; RL A, RLC A, RR A, RRC A Cabang RET return from subroutin JZ jump if accumulator is zero JNZ jump if accumulator is not zero DJNZ decrement register and jump if not zero CJNE compare register and jump if not zero NOP no operation

Anda mungkin juga menyukai