Download presentation
Presentation is loading. Please wait.
Published bytika kartika Modified over 5 years ago
1
Bahasa Mesin dan Assembly Oleh : Kartika Tresya Mauriraya STT – PLN Jakarta Bahasa Mesin Assembly
2
Merupakan Kumpulan kode biner yang merupakan instruksi yang biasa dijalankan oleh komputer, dan biasanya berisi kode biner 0 dan 1. Sebagai contoh, Perintah untuk memindahkan data dalam register BX ke register CX adalah 10001011 11001011 (8B CB), sedangkan bahasa mesin untuk menjumlahkan data dalam register AL dengan angka 7 adalah 00000100 00000111 (04 07), dan perintah membaca dari port 5 diberikan dengan 11100100 00000101 (E4 05). Bahasa Mesin
3
Bahasa mesin tidak mudah untuk dimengerti dan dihapalkan oleh seorang programer, apalagi jumlah instruksi yang tersedia berkisar ribuan perintah. Disamping itu, akan mudah sekali terjadi kesalahan ketika menuliskan angka-angka biner yang tersusun atas angka 0 dan 1 yang banyak sekali. Oleh karena itu biasanya kita tidak memprogram komputer langsung dalam bahasa mesin, namun dalam bahasa assembly. Dalam bahasa assembly, setiap instruksi diberi kode(mnemonic) yang sesuai dengan maksud perintah, sehingga dapat membantu programmer dalam mengingat instruksi yang dibuat. Kata yang dipakai, biasanya berupa singkatan atau beberapa huruf awal dari kata dalam bahasa Inggris.
5
Secara umum instruksi mikroprosesor dikelompokkan menjadi :
7
Dasar Pemrograman Assembly Istilah dalam pemrograman Assembly 1. Mode Pengalamatan ◦Immediate, Register, Langsung, Tak Langsung, Indeks 2. Pembagian Instruksi ◦Transfer, Aritmatik dan Logic, Percabangan, Pemanggilan, Input-Output
8
Istilah dalam pemrograman Assembly 1.Memory, I/O, port, alamat, data, register, instruksi, mnemonic, opcode, operand, komentar 2.Kode mesin, bahasa assembly 3.Assembler, Compiler 4.Style penulisan Program Assembly, Kode mesin, Listing program
9
Register 1.Berada dalam CPU (Mikroprosesor) 2.Digunakan untuk menyimpan data selama proses/program/sub program berjalan 3.Bersifat sementara Umumnya selama dalam sub program 4.Cepat 5.Memerlukan kode instruksi yang pendek 6.Memiliki/menggunakan nama tertentu
10
Ilustrasi Beberapa Perintah LDA,B 78(M1, 4T) LDA,20H 3E 20(M1-M2, 7T) LDA,(8000H) 3A 00 80(M1-M2-M3-M4, 13T) LDA,(HL) 7E(M1-M2, 7T)
11
Memory Digunakan untuk menyimpan program dan data Bersifat permanen atau sementara Jumlah atau ukurannya besar/banyak, jauh lebih banyak dari register Memerlukan kode instruksi yang lebih panjang Memiliki/menggunakan data/alamat memory
12
I/O Berada di luar CPU Tidak bersifat menyimpan data, hanya melewatkan data ◦Khusus untuk port output, terkadang dilengkapi dengan fungsi latch Kapasitas terbatas (lebih kecil dari memory) Menggunakan alamat port
13
Alamat Register dinyatakan dengan nama, sedangkan memory dan port dinyatakan dengan alamat Alamat menyatakan ◦Posisi dari data yang disimpan pada memory ◦Saluran dari port dimana data akan disalurkan Untuk 8086 ◦Alamat memory berkisar 00000H s/d FFFFFH ◦Alamat port berkisar 00H s/d FFH
14
Data Menyatakan sesuatu yang disimpan/diproses/disalurkan, baik berupa suatu nilai atau kode program Dapat disimpan di register atau memory ◦Terkadang port output juga bisa menyimpan Dalam 8086, data yang diproses dalam bentuk satuan 8 bit (1 byte) dengan nilai 0 s/d 255 ◦Ada proses/penyimpanan yang melibatkan data 16 bit
15
Kode Mesin Program yang umumnya ditulis dalam bentuk kode Hexa Merupakan kode yang dimengerti oleh mesin (CPU) Terdiri dari alamat dan kode instruksi (data-data berupa program yang tersimpan di memory) Contoh : 01003E 20 0102DD 21 8000 AlamatKode Mesin
16
Opcode Suatu kata atau tulisan atau simbol untuk menggantikan satu instruksi kode mesin. Digunakan dalam pemrograman assembly Contoh : ◦LD Load (isi, transfer, simpan, ambil) ◦ADD Jumlahkan ◦SUB Kurangkan
17
Operand Sesuatu yang dioperasikan Dapat berupa register, data atau alamat memory atau I/O Contoh : ◦A, B register dengan register ◦B, 20H register dengan data 8 bit ◦A, (2000H) register dengan alamat 16 bit
18
Catatan Operand Ada empat jenis cara menuliskan operand 1.Data langsung (8 bit atau 16 bit atau label) 80H, 2000H, CW, DataMotor 2.Register (8 bit atau 16 bit) A, B, C, BC, DE, HL, IX 3.Alamat langsung (alamat 8 bit, 16 bit atau label) (80H), (8000H), (2000H), (Buffer) 4.Alamat dari register (alamat tidak langsung) (C), (HL), (IX)
19
Arah Operand LDA,B;A B, atau A = B ◦Salin data dari B ke A ADDA,B;A A + B, A = A + B ◦Jumlahkan A dengan B dan simpan di A
20
Mnemonic Menyatakan satu perintah tunggal, termasuk format data atau sesuatu yang dioperasikan oleh data tersebut Terdiri dari opcode dan operand (data, register, memory atau port) Contoh : ◦LDr, n ◦ADDA, r ◦LDr, r’
21
Instruksi Menyatakan satu perintah/program tunggal Terdiri dari Opcode dan Operand Contoh : ◦LDA,30H Masukkan 30H ke A ◦LDB,A Masukkan/salin A ke B ◦INA,(81H) Baca port 81H ke A
22
Label Suatu tulisan yang digunakan untuk menunjukkan posisi dari suatu instruksi Digunakan untuk menggantikan alamat pada penulisan bahasa assembly Terkadang label dapat digunakan sebagai data Nilai sesungguhnya dari label tidak dapat diketahui sebelum semua program selesai dan diterjemahkan ke dalam kode mesin Ditandai dengan titik dua setelah nama label
23
Contoh Label Start:LDB,20H LDHL,Tabel JP(HL) … Tabel:LDA,10H ADDA,B … JPStart
24
Komentar Suatu tulisan selain instruksi yang digunakan untuk menjelaskan program Seharusnya selalu ada, mengingat pemrograman assembly lebih sulit untuk dibaca Sebagai dokumentasi Harus diawali dengan titik koma (;) Contoh : ◦LDA,32; Siapkan data SPASI ke Reg. A ◦CALLLCD; Tampilkan ke LCD
25
Bahasa Assembly Bahasa Assembly adalah bahasa yang dirakit/dibuat untuk menggantikan kode mesin yang sulit untuk dibaca/dihafalkan/dimengerti/ditulis Terdiri dari Label, Opcode, Operand dan komentar Contoh : Mulai:LDSP,0; Posisi awal STACK LDB,0; Tunggu sesaat DJNZ$; dengan cara loop 256 x
26
Assembler Assembler adalah Suatu program yang digunakan untuk menterjemahkan, atau lebih tepat mengubah dari bahasa assembly ke dalam kode mesin Jika suatu komputer dengan prosesor tertentu digunakan untuk menterjemahkan kode dari prosesor lain, maka assembler tersebut dinamakan “Cross Assembler”
27
Prinsip Kerja Assembler Secara umum, proses assembly dibagi dua tahap ◦Pass 1 ◦Mencatat simbol-simbol, pengenal (identifier), label dan lainnya ◦Mengurutkan kode mesin untuk mengetahui alokasi alamat atau label-label yang ada ◦Pass 2 ◦Penterjemahan instruksi demi instruksi program assembly berdasarkan mnemonic dan identifier yang digunakan
28
Compiler Suatu program yang digunakan untuk menterjemahkan, menyusun, menggabungkan dari bahasa tingkat tinggi/menengah ke dalam kode mesin Jika suatu komputer dengan prosesor tertentu digunakan untuk menterjemahkan kode dari prosesor lain, maka assembler tersebut dinamakan “Cross Compiler”
29
Style penulisan Program Kode mesin 0000 3E 30; Masukkan 30H ke Reg. A 0002 06 00; Masukkan 0H ke Reg. B 40E 20; Masukkan 20H ke Reg. C Assembly Start:LDA,30H; Masukkan 30H ke Reg. A LDB,0; Masukkan 0H ke Reg. B LDC,32; Masukkan 20H ke Reg. C Listing program
30
Contoh Format Listing Program AlamatData/KodeLabelOpcOperandKomentar 0000 Start: 00003E 30LDA,30H; Mulai 000206 00LDB,0 00040E 20LDC,32 0006D3 80OUT(80H),A 0008DB 81INA,(81H) 000A31 0000LDSP,0000H 000D……
31
Assembler Directive Perintah-perintah tambahan yang disertakan dalam program assembly, tetapi bukan bagian dari perintah assembly Digunakan untuk memberitahukan assembler mengenai apa yang harus dilakukan Sangat membantu dalam pembuatan program assembly
32
Contoh Assembler Directive ORG Origin ◦Penentuan alamat program EQU Equal ◦Membuat suatu identifier, atau konstanta DEFB Define Byte ◦Meletakkan data Byte ke dalam program DEFM Define Memory ◦Meletakkan beberapa data Byte dalam program DEFS Define Storage ◦Memesan tempat kosong dalam memory
33
Contoh Program SimpanEQU9000H; Simpan = 9000H DataEQU20H; Data = 20H ORG0H; Alamat 0000H Start:LDA,Data LD(Simpan),A; [9000H] 20H LDA,(Nilai); A [Nilai] LD(Buffer),A; [Buffer] A HALT ; Nilai:DEFB30H; [Nilai] 30H ORG8000H; Alamat 8000H Buffer:DEFS(2); [Buffer] 2 Byte
34
Ilustrasi Proses, Assembly dan Kode Mesin LDA,20H 3E 20H LDB,30H 06 30H LDC,A 4F LDA,B 78 LDB,C 41 HALT 76 20H A 30H B 20H C 30H A 20H B
35
Listing Program Pertukaran A-B ORG0000H; … 0000START:; … 0000 3E 20LDA,20H; … 0002 06 30LDB,30H; … 0004 4FLDC,A; … 0005 78LDA,B; … 0006 41LDB,C; … 0007 76HALT; …
36
SEKIAN TERIMA KASIH
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.