Assembler

advertisement
ASSEMBLER
PERTEMUAN KE-1
PENGENALAN ASSEMBLER
&
SEJARAH MICROPROSESOR
Silabus Kuliah









Assembler
Memori & Register
Pengalamatan
Pembuatan File *.com & *.exe
Operasi Aritmatika & Logika
Kendali Aliran
Stack
Procedure dan Macro
Interrupt
Pengaksesan Port
Apa
Assembler itu?
Bahasa Pemrogram Tingkat Rendah
Untuk Memprogram Mesin Prosesor dg Arsitektur tertentu (HardwareDependent)
Menggunakan representasi mnemonic (tergantung perusahaan yg membuat
Prosesor)
Assembler adalah Bahasa Rakitan (Assembly Language)
Bahasa rakitan merupakan:
> Notasi untuk bahasa mesin yang dapat dibaca oleh manusia
> Notasi berbeda-beda tergantung dari arsitektur komputer yang digunakan.
Sumber: id.wikipedia.org
Mengapa




Assembler?
Kecepatan
Ukuran file kecil
Mudah dipelajari
Kemampuan manipulasi sistem komputer
Penulisan Perintah
Perintah dalam Assembler bersifat mnemonic. Setiap baris berisi satu
perintah untuk melakukan suatu proses terhadap register.
Bentuk umum penulisan kode Assembler:
[Label] Mnemonic-OPcode Operand[,Operand ...]
tanda ‘[]’ menunjukkan optional.
Label: .
Mnemonic-Opcode: instruksi/perintah operasional mnemonic.
Operand: register(reg), alamat-memori(mem), atau nilai-data(dat).
Contoh:
Loop:
mov AH,EF
inc CX
jmp Loop
Beberapa Perintah dalam










Assembler
ADD - Mejumlahkan A dengan B lalu hasil disimpan di C
COM - Membandingkan A dengan B
DIV - Membagi A dengan B lalu hasil disimpan di C
JE addr - Jump, jika sama-dengan (=), ke addr
JG addr - Jump, jika lebih-dari (>), ke addr
JGE addr - Jump, jika lebih-dari atau sama-dengan (≥), ke addr
JL addr - Jump, jika kurang-dari (<), ke addr
JLE addr - Jump, jika kurang-dari atau sama-dengan (≤), ke addr
JNE addr - Jump, jika tidak sama-dengan (≠), ke addr
JUMP addr - Jump ke addr
Beberapa Perintah dalam







Assembler
LOADA mem - Menampung register A dari alamat memori
LOADB mem - Menampung register B dari alamat memori
MUL - Mengalikan A dengan B lalu hasil disimpan di C
SAVEB mem - Menyimpan register B ke alamat memori
SAVEC mem - Menyimpan register C ke alamat memori
STOP - Menghentikan eksekusi
SUB - Mengurangkan A dengan B lalu hasil disimpan di C
Mencari nilai faktorial dari 5  5! = 5 * 4 * 3 * 2 * 1 = 120

Bahasa-C:
a=1; f=1;
while (a <= 5)
{ f = f * a; a = a + 1; }
Compiler C mengubah kode di atas ke dalam bahasa assembly.

Bahasa-Assembly:
0 CONB 1
1 SAVEB 128
2 CONB 1
3 SAVEB 129
4 LOADA 128
5 CONB 5
6 COM
7 JG 17
8 LOADA 129
9 LOADB 128
10 MUL
11 SAVEC 129
12 LOADA 128
13 CONB 1
14 ADD
15 SAVEC 128
16 JUMP 4
17 STOP
// a=1;
// Anggap a di alamat 128
// f=1;
// Anggap F di alamat 129
// if a > 5 the jump to 17
// f=f*a;
// a=a+1;
// melompat ke if
SISTEM BILANGAN
BILANGAN BINER
Sebenarnya semua bilangan, data maupun program itu sendiri
akan diterjemahkan oleh komputer ke dalam bentuk biner. Jadi
pendefinisisan data dengan jenis bilangan apapun (desimal, oktal
dan hexadesimal) akan selalu diterjemahkan oleh komputer ke
dalam bentuk biner.
Bilangan Biner adalah bilangan yang hanya terdiri atas 2 angka
(Berbasis dua), yaitu 0 dan 1.
BILANGAN DESIMAL
Bilangan Desimal adalah jenis bilangan yang paling banyak
dipakai dalam kehidupan sehari-hari.
Bilangan desimal adalah bilangan yang terdiri atas 10 angka
(Berbasis 10), yaitu angka 0-9.
SISTEM BILANGAN
BILANGAN OKTAL
Bilangan oktal adalah bilangan dengan basis 8, artinya angka
yang dipakai hanyalah antara 0-7.
BILANGAN HEXADESIMAL
Bilangan Hexadesimal merupakan bilangan yang berbasis 16.
Dengan angka yang digunakan berupa:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Bilangan Hexadesimal paling sering digunakan dalam Assembler.
karena mudah dikonversikan dengan bilangan Biner dan Desimal.
Karena berbasis 16, maka 1 angka pada hexadesimal akan
menggunakan 4 bit.
Mikroprosesor
Mikroprosesor (µP)  Prosesor
Pengatur kerja komputer
Perkembangan Mikroprosesor
CPU Intel dibuat berdasarkan arsitektur Von Neumann.
Sistem komputer Von Neumann terdiri dari 3 blok utama,
yaitu:
central processing unit (CPU),
 memori, dan
 perangkat input/output (I/O).

Ketiga komponen ini saling terkait dalam system bus.
Diagram di samping menggambarkan hubungan
ketiganya.
webster.cs.ucr.edu
Blok Diagram Sistem Komputer Von Neumann
Perkembangan Mikroprosesor
Tahun 1974,
- µP pertama yang dibuat untuk komputer di rumah adalah Intel 8080.
- Komputer 8-bit dalam satu chip.
Tahun 1979,
- Intel mengeluarkan 8088.
- Digunakan sekitar tahun 1982 untuk PC-IBM.
Penjualan PC dimulai dari 8088 ke 80286 lalu 80386 kemudian 80486
berikutnya ke Pentium lalu Pentium II kemudian Pentium III hingga Pentium 4.
Semuanya dibuat Intel dan merupakan pengembangan dari desain 8088.
Pentium 4 dapat menjalankan semua kode yang dijalankan pada 8088,
namun 5.000 kali lebih cepat! `
Perkembangan Mikroprosesor
Apakah “Chip” itu?
Chip atau IC (integrated circuit),
terdiri atas potongan kecil
silikon dimana transistor
membentuk rangkaian
mikroprosesor.
Sebuah chip seukuran 1 inci
dapat berisi puluhan-juta
transistor.
Sumber: www.howstuffworks.com
Perkembangan Mikroprosesor
8088
& 8086 :
• Ini merupakan processor IBM-PC yang pertama
sekali atau yang sering disebut XT.
• Jalur Bus Data 8088 menggunakan 8bit.
• Jalur Bus Data 8086 menggunakan 16bit.
• Beda Jalur Bus  Beda Jumlah Data yg dikirim.
 kecepatan 8086 di atas 8088.
• 8088 & 8086 mengalamatkan memori1MB.
Perkembangan Mikroprosesor
80286
•
•
•
•
•
•
:
Pengembangan dari 8086 dg penambahan Instruksi baru.
Jalur Bus sama dg 8086, tapi kecepatan di atas 8086.
Dapat bekerja pada 2 mode: Real & Protected.
ModeReal beroperasi sama seperti 8088/8086 hanya
berbeda dalam kecepatan.
ModeReal bertujuan agar semua software pada 8088/8086
dapat dioperasikan di 80286.
ModeProtected membantu pengalamatan memori16MB.
Perkembangan Mikroprosesor
80386
:
• Bus Data 32bit  kecepatannya jauh di atas
80286.
• Penambahan mode pemrograman baru yaitu
ModeVirtual.
ModeVirtual membantu pengalamatan
memori4GB.
• ModeReal  kompatibilitas dg 8088/8086
• ModeProtected  kompatibilitas dg 80286.
Memori



Menyimpan program.
Menampung hasil suatu proses.
Bersifat Volatile
Memori




8088 menggunakan 8 bit.
8086 menggunakan 16bit.
8088 & 8086 mengalamatkan
memori1MB.
Segmen:Offset

1357h:2468h

1356h:2478h
Memori
Segmen:Offset
 Segmen 0001h berawal dari lokasi memori 16 (0010h)
hingga 65551 (65535 + 16).
 Segmen 0002h berawal dari lokasi 32 hingga 65567.
 Demikian seterusnya.

Overlapping/tumpang-tindih
di mana lokasi offset 0010h bagi segmen 0000h akan
merupakan offset 0000h bagi segmen 0001h.
Demikian pula offset 0011h bagi segmen 0000h akan
merupakan offset 0001h bagi segmen 0001h.
Sehingga akan terlihat bahwa ada banyak nilai
segmen:offset yang dapat digunakan untuk menyatakan
suatu alamat memori tertentu disebabkan adanya
overlapping ini.
Download