Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Bahasa Mesin : bahasa pemrograman dalam mikroprosesor bisa ditulis dalam bahasa mesin, dalam bentuk kode binary untuk memberi perintah pada mikro komputer.

Presentasi serupa


Presentasi berjudul: "Bahasa Mesin : bahasa pemrograman dalam mikroprosesor bisa ditulis dalam bahasa mesin, dalam bentuk kode binary untuk memberi perintah pada mikro komputer."— Transcript presentasi:

1 Bahasa Mesin : bahasa pemrograman dalam mikroprosesor bisa ditulis dalam bahasa mesin, dalam bentuk kode binary untuk memberi perintah pada mikro komputer. Contoh bahasa mesin sebagai berikut : NEXT Memory AddressIsi (binary)Isi (hexadecimal)Operasi 00100H E4INPUT dari 00101H PORT 05H 00102H ADD 00103H H 00104H E6OUTPUT ke 00105H PORT 02

2 NEXT Binary tersebut membentuk program yang dinamakan bahasa mesin. Meskipun bahasa tersebut susah dimengerti, dan hampir mustahil bagi programmer untuk mengingat ribuan instruksi kode binary untuk masing-masing CPU. Sangat mungkin untuk menimbulkan error (kesalahan) untuk bekerja dengan kode binary yang berbentuk serial angka memanjang dari 0 dan 1 saja. Menggunakan bilangan Hexadecimal yang mewakili binary mungkin cukup membantu, namun tetap saja masih ada ribuan kode instruksi yang harus dihafalkan. Bahasa Assembly : untuk membuat program yang lebih simple, programmer biasa menuliskan program dalam bahasa assembly. Kemudian diterjemahkan ke dalam bahasa mesin, sehingga dapat di- load/muat ke dalam memory untuk di-run/eksekusi. Bahasa assembly menggunakan dua, tiga atau empat huruf MNEMONIC sebagai sarana membantu mengingat sesuatu. Huruf dalam bahasa mnemonic assembly biasanya merupakan kependekan dari kata-kata bahasa Inggris untuk mengoperasikan suatu perintah. Contoh Mnemonic dari SUB = SUBSTRACT (pengurangan) XOR = Exckusive OR (Boolean Logika) MOV = MOVE (mnemonic untuk menyalin data dari suatu lokasi ke lokasi lainnya)

3 NEXT Jenis-jenis perintah berdasarkan pemakaian byte : Dalam pemrograman Mikroprosesor dikenal beberapa perintah yang dibedakan berdasarkan banyaknya byte yang dipergunakan menjadi : 1.Perintah satu byte 2.Perintah dua byte 3.Perintah tiga byte 4.Perintah empat byte Contoh : MnemonicOp-CodeByteWaktu (state)Operations AAA3714Adjust AL, flags, AH MOV AL,04BO 0424Moving 04h to AL 8 bites Reg MOV CX, Moving 17 to CX 16 bite Reg ADD [BX+SI+0005],AH 00 A EAADD AH to [BX+SI+0005]

4 NEXT Pengelompokkan perintah berdasarkan mode pengalamatan : 1.Immediate Addressing (Pengalamatan Segera) 2.Register Addressing (Pengalamatan Register) 3.Direct Addressing (Pengalamatan Langsung) 4.Indirect Addressing (Pengalamatan tak Langsung) 5.Lainnya (Indexed, Based, Based and Indexed, String) 1. Immediate Addressing (Pengalamatan Segera) Mode pengalamatan segera memungkinkan pemprograman untuk memindahkan data tertentu ke suatu lokasi. Data yang akan dipindahkan ditentukan dalam perintah itu sendiri dan berupa data satu byte. Dengan mode ini sumber bukan sebuah register atau lokasi memori, melainkan data sebenarnya yang diisikan dalam urutan perintah itu sendiri. Sebagai contoh : MVI A, FEh Byte sumber Alamat tujuan Operasi Register A diisi dengan nilai FE, hexadecimal. Kalimat yang tepat adalah “Pindahkan segera FEh ke register A”.

5 NEXT Pasangan register 16-bit (BC, DE dan HL) dapat ditentukan sebagai alamat tujuan. Perintah seperti itu memerlukan 2 byte data segera. Contoh : LXI H, 802Dh. Perintah ini menyebabkan pasangan register HL dimuati dengan data segera 802Dh. Perintah tersebut memakai “H” untuk menyatakan pasangan HL. Hal ini merupakan standard bagi Pasangan BC dan DE bisa disebut B dan D saja. 2. Register Addressing (Pengalamatan Register) Pengalamatan register memindahkan data antar reg internal pada Mikroprosesor. Operand menentukan reg mana yang digunakan dalam pemindahan tersebut. Urutan operand menunjukkan reg mana sebagai sumber dan mana sebagai tujuan, contoh : MOV B, A Alamat sumber Alamat tujuan Operasi

6 NEXT Perintah ini menyebabkan isi reg A dipindahkan ke reg B. Setelah perintah dilaksanakan, isi reg A tidak berubah. MOV B,A biasa ditunjukkan dalam bentuk (B) (A): pindahkan isi reg A ke reg B 3. Direct Addressing (Pengalamatan Langsung) Pengalamatan segera seperti telah dijelaskan di atas, menggunakan lokasi dalam Direct Addressing (Pengalamatan Langsung). Pengalamatan segera seperti telah dijelaskan di atas, menggunakan lokasi dalam CPU sebagai alamat sumber dan/atau alamat tujuan. Dengan pengalamatan langsung data dapat dibaca dari atau ditulis ke lokasi memory. Alamat lokasi memory ditentukan dalam perintahnya. Kemampuan untuk mengalamati lokasi penyimpanan mencakup seluruh lokasi memory. Pengalamatan langsung kadang-kadang disebut pengalamatan diperluas. Contohnya : LDA 20EAh Perintah ini menyebabkan reg A dimuati dengan isi lokasi memory dengan alamat 20EAh. Sebaliknya isi reg A dapat disimpan langsung di suatu lokasi memory.

7 NEXT Pasangan reg HL sering digunakan untuk menyimpan alamat memory 16 bit, untuk itu dua perintah disediakan untuk memungkinkan 2 reg H dan L dimuati dengan perintah tunggal melalui pengalamatan langsung. Contohnya : LHLD 20A2h Perintah ini mengisi reg L dengan isi lokasi memory 20A2h dengan reg H dimuati dengan isi dari lokasi berikutnya yaitu 20A3h yang dinyatakan sebagai : [L] [20A2h] [H] [20A3h] Meskipun detail yang diberikan disini berlaku untuk 8085, namun metode penyimpanan alamat dengan “byte rendah” di lokasi pertama dan “byte tinggi” di lokasi berikutnya berlaku cukup umum untuk beberapa keluarga Mikroprosesor. Pasangan tersebut adalah : SHLD 20AFh Atau menyimpan HL langsung di 20AFh : [20AFh] [L] [20BOh] [H]

8 NEXT 4. Indirect Addressing (Pengalamatan Tidak Langsung) Pada pengalamatan langsung hanya reg A atau pasangan HL yang dapat digunakan untuk menyimpan atau memuat nilai ke dan dari memory. Jika nilai yang akan disimpan ke memory berasal dari reg B menggunakan pengalamatan langsung, maka pertama-tama perlu memindahkan isi reg B ke A. Kemudian operasi penyimpanan baru dapat dilakukan. Pengalamatan tak langsung menggunakan isi lokasi penyimpanan untuk menunjuk ke alamat yang dituju. Jika reg internal digunakan pada pengalamatan tak langsung, mode alamat dikatakan sebagai pengalamatan tak langsung register, yaitu operasi membaca data dari atau menulis data ke lokasi memory yang alamatnya disimpan di pasangan reg HL. Perintah tidak berisi alamat memory yang sebenarnya. Sebaliknya alamat disimpan dalam pasangan reg HL. Alamat yang sebenarnya diperoleh dengan cara tidak langsung melalui pasangan HL. Byte alamat orde tinggi dianggap berada di reg H. Dengan byte orde rendah di reg L. Isi pasangan reg HL menunjukkan alamat memory yang ditunjuk. (A) ((HL)) Isi lokasi memory yang alamatnya ada di pasangan reg HL di bawa ke accumulator.

9 NEXT 5. Pengalamatan Lainnya (Indexed, Based, Based and Indexed, String) Indexed Addressing Pengalamatan Index adalah alamat memory disimpan di reg index, ditambah bilangan dalam instruksi MOV AX,[SI + 06]Reg yang terlibat DS Ket : AL [SI+06]; AH [SI+07] Based Addressing Pengalamatan Based adalah alamat memori disimpan di reg BP atau BX ditambah bilangan dalam instruksi. MOV AX,[BP +02]Reg yang terlibat SS Ket : AL [BP+02]; AH [BP+03] JMP [BX +06]Reg yang terlibat BP Ket : IP [BX+06 : BP+07] Based and Indexed Addressing Pengalamatan Based and Index adalah alamat memory disimpan di reg BP atau BX ditambah reg Index. MOV AX,[BX + SI]Reg yang terlibat DS Ket : AL [BX+SI]; AH (BX+SI+01]

10 NEXT String Addressing Pengalamatan String adalah pengalamatan memory dilakukan oleh dua buah segmen yang berbeda dengan offset reg index. MOV SBReg yang terlibat ES, DS Ket : [ES:DI] [DS:SI] Pengelompokan berdasarkan kategori 1.Perintah Transfer Data 2.Perintah Aritmatika 3.Perintah Logika 4.Perintah Percabangan 5.Perintah Geser dan Putar 6.Perintah Bit 7.Perintah I/O 8.Lain-lain

11 NEXT 1. Perintah Transfer Data Tipe instruksi untuk baca dan tulis data ke / dari register, adalah : Memori ke Register Contoh :MOV Reg,[Mem] MOV AX,[437AH] Register ke Memori Contoh :MOV [Mem],Reg MOV [BX],AX Register ke Register Contoh :MOV Reg,Reg MOV AX,BX Data ke Register Contoh :MOV Reg,data MOV AX,437AH 2. Perintah Aritmatika Contohnya : ADD, untuk menjumlahkan data baik 8 bit maupun 16 bit  Untuk 8 bit  Reg dengan reg ADD CL,BL  Reg dengan data ADD AL,74H  Reg dengan Mem ADD AL,[BX]

12 NEXT  Untuk 16 bit  Reg dengan reg ADD CX,BX  Reg dengan data ADD AX,7401H  Reg dengan Mem ADD AX,[BX] ADC (Add With Carry) Sama seperti ADD, hanya ditambahkan dengan flag Carry. Jika Carry bernilai 1, maka hasil penjumlahannya ditambah 1. SUB dan SUBC SUB adalah perintah untuk pengurangan. Cara kerjanya mirip dengan ADD dan ADC 3. Perintah Logika Yang termasuk perintah logika, yaitu : AND OR XOR Hasilnya akan mengubah juga flag register. Perintah ini sering digunakan untuk MASK suatu data.

13 NEXT 4. Perintah Percabangan Perintah percabangan ada 2 tipe (untuk beberapa macam Mikroprosesor termasuk Z-80), yaitu percabangan absolute dan percabangan relatif. Selain itu perintah JUMP bisa bergantung pada kondisi flag (Zero / Carry) dan ada yang tidak tergantung flag. Perintah JUMP yang tidak tergantung dari kondisi flag :  JMP Perintah JUMP yang tergantung kondisi flag :  JA / JNBE Loncat jika Above / Not Below or Equal  JAE / JNB / JNC Loncat jika Above or Equal / Not Below / No Carry  JB / JC / JNAE Loncat jika Below / Carry / Not Above or Equal  JBE / JNA Loncat jika Below or Equal / Not Above  JCXZ Loncat jika CX register berisi 0  JE / JZ Loncat jika Equal / Zero  JG / JNLE Loncat jika Greater / Not Less Than or Equal  JGE / JNL Loncat jika Greater than or Equal / Not Less  JL / JNGE Loncat jika Less than / Not Greater or Equal  JLE / JNG Loncat jika Less than or Equal / Not Greater  Dll

14 NEXT Subrutin Salah satu bentuk pencabangan yang lain adalah Subrutin. Subrutin adalah program yang dipanggil oleh program lainnya. Cara memanggil Subrutin berbeda dengan cara memanggil lompatan, yaitu : bila Subrutin sudah dilaksanakan, maka komputer akan kembali melanjutkan program sebelumnya mulai dari tempat/alamat sebelum terjadinya pencabangan. Jadi pada panggilan subrutin, alamat instruksi selanjutnya (sebelum terjadi pencabangan program) sudah disimpan, dan CPU alamat ini agar bisa kembali ke program utama. Alamat kembali dan pelaksanaan lanjutan instruksi, disimpan dalam program utama, menggunakan mekanisme STACK dengan menggunakan metode LIFO (Lat In First Out). Operasi alih data dengan STACK, dilakukan dengan instruksi PUSH qq dan POP qq. Instruksi PUSH qq akan menempatkan isi register qq ke STACK. Kebalikan dari operasi PUSH qq adalah operasi POP qq, yang mana instruksi ini akan mengalihkan isi memori paling atas STACK ke register qq. Operasi PUSH qq digunakan untuk menyimpan isi berbagai register ke dalam STACK, apabila register-register ini hendak digunakan pada program subrutin yang dipanggil. Contoh : JMLHPUSH AF PUSH BC Bagian utama ProgramJMLH POP BC POP AF RET

15 NEXT Sebelum keluar dari subrutin JMLH, isi register BC dikembalikan ke situasi semula (oleh instruksi POP BC), dan isi dari register AF juga dikembalikan ke situasi semula ( oleh instruksi POP BC), dan isi register AF juga dikembalikan ke situasi semula oleh instruksi POP AF. Akhirnya, instruksi RET akan mengembalikan isi STACK dan program kembali ke program utama. 5. Perintah Geser dan Putar Perintah geser untuk menggeserkan isi-isi bit pada register tertentu ke arah kiri maupun kanan, contohnya : SAL / SHL, menggeser bit ke kiri dan meletakkan 0 pada LSB. CF MSB LSB 0 SAR, menggeser bit ke kanan dan MSB yang baru sama dengan MSB yang lama MSB MSB LSB CF Perintah putar untuk memutarkan isi-isi bit pada register tertentu ke arah kiri maupun kanan, contohnya : ROL, CF MSB LSB ROR, memutarkan bit ke kanan dan LSB ke MSB CF MSB LSB

16 NEXT 6. Perintah Bit Pada Mikroprosesor tertentu (Z-80) ada perintah bit, yaitu untuk mengetest data satu buah bit pada sebuah register, contohnya : BIT 2,B berfungsi untuk mengecek apakah bit ke 2 pada register B, bernilai satu atau nol. 7. Perintah I/O Berfungsi untuk mengakses data dari atau ke port, contoh : IN mengambil data dari port tertentu kje register OUT mengirimkan data dari register ke port tertentu 8. Lain-lain Selain kelompok perintah-perintah di atas, setiap prosesor memiliki banyak sekali perintah-perintah yang lainnya.

17 NEXT Soal : 1. Apa perbedaan yang mendasar antara bahasa mesin, dan bahasa assembly pada sistem mikroprosesor! 2. Sebutkan dan jelaskan 5 buah pengelompokkan perintah berdasarkan mode pengalamatan! 3. Jelaskan dengan contoh-contoh pemakaian dari 8 buah pengelompokkan berdasarkan kategori!

18 TUTUP Terima Kasih


Download ppt "Bahasa Mesin : bahasa pemrograman dalam mikroprosesor bisa ditulis dalam bahasa mesin, dalam bentuk kode binary untuk memberi perintah pada mikro komputer."

Presentasi serupa


Iklan oleh Google