TK306-111061-646-1 1290KB Sep 17 2011 10

advertisement
Mikroprosesor
&
Bahasa Rakitan
Eka Puji Widiyanto, ST
Perkenalan
Dosen : Eka Puji Widiyanto, ST
–
–
S1 Teknik Elektro UGM 2001
Email : [email protected], [email protected]
Buku Acuan :
–
–
Henri S.V. Simanjuntak, Dasar-dasar Mikroprosesor, Kanisius,
Yogyakarta.
Susanto, Pemograman dengan Bahasa Assembly, Elex Media
Komputindo, Jakarta
Waktu Konsultasi :
–
–
Selasa
Jumat
: 13.00 – 14.30
: 13.00 – 14.30
Penilaian :
1.
2.
3.
4.
Tugas
Kuis
UTS
UAS+Praktikum
: 20%
: 10%
: 30%
: 40%
Aturan Perkuliahan
Mahasiswa yang mempunyai tingkat kehadiran kurang dari 69% tidak
diizinkan mengikuti Ujian Akhir Semester.
Mahasiswa yang terlambat mengumpulkan tugas, tidak mendapat nilai
untuk tugas tersebut.
Mahasiswa yang melanggar tata tertib dan ketentuan ujian, baik ujian
tengah semester maupun ujian akhir semester dianggap gugur dan
mendapat nilai E.
Materi
1. Pengantar Mikroprosesor
2. Pengantar Bahasa Rakitan
3. Arsitektur Mikroprosesor
4. Mencetak Huruf, Kalimat, dan Angka
5. Register
6. Memori
7. Masukan dari Keyboard
8. Mode Pengalamatan Data
9. Instruksi Mode Pengalamatan Data
10. Operasi Perpindahan Data
11. Operasi Aritmatika
12. Pointer
13. Manipulasi Bit dan Angka
14. Fungsi Pengambil Keputusan dan Stack
15. Prosedur dan Macro
16. Operasi Pada Layar
17. Operasi Pada String
18. Pengaksesan Port dan Speaker
19. Grafik
Tool
Turbo Assembler
Pengantar Mikroprosesor
Mikroprosesor :
– Micro
: kecil, mini
– Processor : pengolah, pemroses
Definisi
:
– General
:
Pemroses mikro atau pengolah mikro
– Khusus
:
Merupakan keping (chip) kecil yang tersusun dari integrasi rangkaian elektronika yang
rumit, yang didesain untuk mengerjakan proses yang kompleks
Mikroprosesor merupakan inti dari sistem komputer
Implementasi :
–
–
–
–
–
–
Industri
Medis
Hiburan
Kendaraan
Keamanan
dll
Aplikasi Mikroprosesor
Keunggulan Mikroprosesor
1. Programmable
2. Kebutuhan daya rendah
3. Jumlah komponen yang dibutuhkan relatif
sedikit
4. Handal dan fleksibel.
Sejarah
Abacus
- Alat hitung dari manik-manik dari Babilonia pada abak ke-50 SM
Sempoa
– Cina abad ke 10 sebelum Masehi
Gigi Roda
– Blaise Pascal, 1642, cikal bakal kalkulator modern
Eniac
– 1943
– Desimal 20 accumulator 10 digit
– 30 ton, 18000 tabung vacum, daya 140 kW
µP 4 bit
– i4004 (1971)
– Hanya bisa add dan sub
µP 8 bit
– i8008
µP 16 bit
– i8086/i8088/80286
µP 32 bit
– I80386/80486/Pentium
µP 64 bit
– AMD Athlon64
Mikroprosesor 4-bit
1971, Intel Corporation & Marcian E Hoff
memperkenalkan i4004
4096 address
4-bit memori
45 instruksi
Mikroprosesor 8-bit
Akhir 1971 Intel memperkenalkan i8008
16K x 8bit memori
48 instruksi
1973 Intel memperkenalkan i8080 sebagai
mikroprosesor 8-bit modern
– Alamat memori dan instruksi lebih besar
– Kecepatan akses 2uS
1977
: i8085 (1,3uS)
Mikroprosesor 16-bit
1978
: i8086
1979
: i8088
Spesifikasi :
–
–
–
–
16-bit
Kecepatan eksekusi 400nS
Alamat 1Mbyte / 512Kword
Hardware multiplication & division
I80186
I80286
: sistem kendali industri
:
– Alamat memori 16Mbyte
– Clock 16MHz
Mikroprosesor 32-bit
I80386 & i80486 : sering disebut 386 dan
486
Alamat memori 4GB
i80486 = i80386 + coprocessor + 8Kbyte
internal cache memory
Pentium, Pentium II, Pentium III, Pentium
IV
Name
Date
Transistors
um
Clock
Memory
Data width
MIPS
8080
1974
6,000
6
2 MHz
64 kB
8 bits
0.64
8088
1979
29,000
3
5 MHz
1 MB
80286
1982
134,000
1.5
6 MHz
16 MB
16 bits
1
80386
1985
275,000
1.5
16 MHz
4 GB
32 bits
5
80486
1989
1,200,000
1
25 MHz
4 GB
32 bits
20
Pentium
1993
3,100,000
0.8
60 MHz
64 GB
32 bits
64-bit bus
100
Pentium II
1997
7,500,000
0.35
233
MHz
64 GB
32 bits
64-bit bus
~300
Pentium III
1999
9,500,000
0.25
450
MHz
64 GB
32 bits
64-bit bus
~510
Pentium 4
2000
42,000,000
0.18
1.5 GHz
64 GB
32 bits
64-bit bus
~1,700
Pentium 4
"Prescott"
2004
125,000,000
0.09
3.6 GHz
64 GB
32 bits
64-bit bus
~7,000
Core-i7
2009
16 bits
8-bit bus
0.33
Arsitektur Dasar Komputer
3 komponen utama :
– CPU (Central Processing Unit)
– Memory
– Input & Output Devices
Memory
I/O Devices
DATA BUS
CPU
CONTROL BUS
ADDRESS BUS
CPU
Otak komputer
Bertugas mengorganisasikan semua
operasi :
– Perpindahan data
– Aritmatika & logika
– Kontrol IO
Memori
Menyimpan data dan instruksi
Tipe :
– RAM (Random Access Memory)
– ROM (Read Only Memory)
RAM :
– Temporari / volatil
– Akses cepat
ROM :
– Permanen / non volatil
– Akses lebih lambat
– Inisialisasi piranti
Piranti Masukan & Keluaran
Merupakan piranti-piranti eksternal yang
dibutuhkan oleh komputer untuk berhubungan
dengan dunia luar
Contoh :
–
–
–
–
–
–
Monitor
Printer
Scanner
Keyboard
Mouse
dll
Arsitektur Dasar Mikroprosesor
3 bagian :
– ALU (Arithmetic Logic Unit/Unit Artimatika dan
Logika)
Operasi aritmatika dan logika
– CU (Control Unit/Unit Kendali)
Mengatur semua proses internal pada mikroprosesor :
–
–
–
–
Transfer data
Interupsi
Kontrol program
Kontrol IO
– Register
Memori yang dapat diakses dengan cepat
Temporari storage proses komputasi
Sistem Bilangan
Dasar pemrograman mikroprosesor
Tipe :
– Biner
– Oktal
– Desimal
– Heksadesimal
Biner
Sistem bilangan dasar sebuah komputer
Basis/radiks 2 :
– 0 : logik rendah (low – L)
– 1 : logik tinggi (high – H)
Level :
– MSB(Most Significant Bit) : bit dengan nilai paling tinggi
– LSB(Least Significant Bit) : bit dengan nilai paling rendah
Konversi ke desimal :
– Mengalikan suku ke-N dengan 2N
Contoh :
11002 = (1 x 23) + (1 x 22) + (0 x 21) + (0 x 20)
=8+4+0+0
= 12
Oktal
Basis/radiks 8 = 0…7
Konversi ke desimal :
– Mengalikan suku ke-N dengan 8N
Contoh :
2768 = (2 x 82) + (7 x 81) + (6 x 80)
= 128 + 56 + 6
= 190
Desimal
Bilangan sehari-hari
Basis/radiks 10 = 0…9
Heksadesimal
Paling banyak dipergunakan dalam
pemrograman bahasa rakitan
Basis/radiks 16 =
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Konversi ke desimal :
– Mengalikan suku ke-N dengan 16N
Contoh :
3116 = (3 x 161) + (1 x 160)
= 48 + 1
= 49
Konversi Desimal ke Radiks r
Aturan umum :
– Gunakan pembagian dengan radiks r secara
suksesif(berulang) sampai dengan hasil
pembagian = 0
– Sisa pembagian merupakan hasil konversi
mulai dari LSB sampai dengan MSB
Konversi 17910 ke biner:
179 / 2 = 89 sisa 1 (LSB)
/ 2 = 44 sisa 1
/ 2 = 22 sisa 0
/ 2 = 11 sisa 0
/ 2 = 5 sisa 1
/ 2 = 2 sisa 1
/ 2 = 1 sisa 0
/ 2 = 0 sisa 1 (MSB)
 17910 = 101100112
Contoh: Konversi 17910 ke oktal:
179 / 8 = 22 sisa 3 (LSB)
/ 8 = 2 sisa 6
/ 8 = 0 sisa 2 (MSB)
 17910 = 2638
Contoh: Konversi 17910 ke hexadesimal:
179 / 16 = 11 sisa 3 (LSB)
/ 16 = 0 sisa 11 (dalam bilangan
hexadesimal berarti B)MSB
 17910 = B316
Konversi Biner ke Oktal
Aturan umum :
– Kelompokkan 3 digit bilangan biner mulai dari LSB
sampai dengan MSB
Contoh :
Konversikan 101100112 ke bilangan oktal
Jawab : 10 110 011
2
6
3
Jadi 101100112 = 2638
Konversi Biner ke Heksadesimal
Aturan umum :
– Kelompokkan 4 digit bilangan biner mulai dari LSB
sampai dengan MSB
Contoh :
Konversikan 101100112 ke bilangan heksadesimal
Jawab : 1011 0011
B
3
Jadi 101100112 = B316
Konversi Oktal ke Biner
Aturan umum :
– Terjemahkan tiap digit oktal ke 3 digit biner
Contoh :
Konversikan 2638 ke bilangan biner
Jawab : 2
6
3
010 110 011
Jadi 2638 = 0101100112 Karena 0 didepan tidak
ada artinya kita bisa menuliskan 101100112
Konversi Heksadesimal ke Biner
Aturan umum :
– Terjemahkan tiap digit heksadesimal ke 4 digit biner
Contoh :
Konversikan 26316 ke bilangan biner
Jawab : 2
6
3
0010 0110 0011
Jadi 26316 = 0010011000112 Karena 0 didepan
tidak ada artinya kita bisa menuliskan
10011000112
Bilangan Bertanda dan Tidak
Bilangan bertanda (signed number) :
– Memiliki arti plus (+) dan minus (-)
– Menggunakan seluruh digit angka yang tersedia
untuk merepresentasikan angka positif dan negatif
– Indikator dari Sign Flag(SF) :
SF = 0 : bilangan positif
SF = 1 : bilangan negatif
Bilangan tidak bertanda (unsigned number) :
– Tidak mengenal minus (-)
– Menggunakan seluruh digit angka yang tersedia
untuk merepresentasikan angka positif saja
Tidak Bertanda
+3
+2
+1
0
+255
+254
+253
Bertanda
+3
+2
+1
0
-1
-2
-3
Biner
0000 0011
0000 0010
0000 0001
0000 0000
1111 1111
1111 1101
1111 1100
Konversi Signed Number ke Biner
Aturan umum :
– Konversi nilai absolut bilangannya ke biner yang diorganisasikan
sebagai byte, word, ataupun double word
– Komplemenkan hasilnya
– Tambahkan LSB dengan 1
Contoh :
Konversikan -21 ke biner
Jawab :
Absolut -21 = 21
Komplemen 000101012
Tambahkan LSB dengan 1
Hasil
Jadi -21 = 111010112
= 000101012
= 111010102
= 000000012
= 111010112
Cara cepat :
– Representasi Signed Number = maksimal cacahan +
Signed Number
Contoh :
Konversikan -21 ke biner
Jawab :
8bit biner(byte) dengan maksimal cacahan
256 (28) muat untuk merepresentasikan -21,
maka
Representasinya = 256 + (-21)
= 235
= 111010112
Jadi -21 = 111010112
Organisasi Data
Merupakan cara untuk merepresentasikan
bit data menjadi beberapa pengelompokan
Tipe :
– Bit
– Nibble
– Byte
– Word
– Double word
= 1 bit
= 4 bit
= 8 bit
= 16 bit
= 32 bit
Bit
"Unit" paling kecil dari data pada komputer biner
adalah satu bit tunggal.
Satu bit tunggal mampu merepresentasikan hanya
dua nilai yang berbeda (secara tipikal nol atau satu)
Anda bisa merepresentasikan dua item data apapun
yang berbeda dengan satu bit tunggal. Contoh
meliputi nol atau satu, benar atau salah, on atau off,
pria atau wanita. Anda tidak dibatasi untuk
merepresentasikan jenis data biner (yaitu, objek
yang hanya mempunyai dua nilai yang berbeda).
Nibble
nibble adalah satu koleksi empat bit. Ia bukan
merupakan jenis data yang menarik kecuali dua item:
bilangan BCD (binary coded decimal) dan bilangan
berbasis enambelas.
Ia menggunakan empat bit untuk merepresentasikan
satu BCD tunggal atau digit hexadecimal. Dengan suatu
nibble, kita bisa merepresentasikan sampai dengan 16
nilai berbeda.
Dalam kasus bilangan berbasis enambelas, nilai dapat
berupa 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F
direpresentasikan dengan empat bit. BCD menggunakan
sepuluh angka berbeda (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Byte
Struktur data terpenting yang digunakan oleh mikroprosesor
80x86 adalah byte. Sebuah byte terdiri dari delapan bit dan
adalah datum addressable paling kecil (data item) pada
mikroprosesor 80x86.
Memori Utama dan alamat I/O pada 80x86 adalah semua
alamat byte. Artinya bahwa item paling kecil yang mungkin
diakses secara individu oleh satu program 80x86 adalah nilai
delapan-bit.
Bit dalam satu byte secara normal dinomori dari nol sampai
tujuh menggunakan konvensi di dalam gambar 1.1.
Bit 0 adalah urutan bit terendah atau bit paling tidak berarti
(kurang signifikan), bit 7 adalah urutan bit paling berarti
(signifikan) dari byte. Kita akan mengacu pada penomoran
semua bit lain.
Gambar 1.1: Penomoran Bit dalam satu Byte
Perhatikan bahwa satu byte juga berisi persis
dua nibble (lihat gambar 1.2).
Gambar 1.2: Dua Nibbles dalam satu Byte
Word
Sebuah word adalah kelompok 16 bit. Kita akan
menomori bit dalam word mulai dari nol sampai
dengan lima belas. Penomoran bit muncul di
gambar 1.3.
Gambar 1.3: Nomor Bit dalam Word
Seperti byte, bit 0 adalah urutan bit terendah dan
bit 15 adalah urutan bit tertinggi.
Perhatikan bahwa satu word berisi persis dua
byte. Bit 0 sampai 7 membentuk urutan byte
terendah, bit 8 hingga 15 membentuk urutan
byte tertinggi (lihat gambar 1.4).
Gambar 1.4: Dua Bytes dalam Word
Secara alami, satu word mungkin saja dipecah
ke dalam empat nibble seperti diperlihatkan di
dalam gambar 1.5.
Gambar 1.5: Nibble dalam Sebuah Word
Nibble nol adalah nibble urutan terendah dalam word dan
nibble tiga adalah nible urutan tertinggi dari word. Dua nibble
lain adalah “nibble satu” atau “nibble dua”.
Dengan 16 bit, bisa direpresentasikan 216 (65,536) nilai
yang berbeda. Ini bisa menjadi nilai dalam jangkauan
0..65,535 (atau, sebagai kasus biasanya, 32,768..+32,767) atau jenis data lain apapun tanpa lebih
dari 65,536 nilai.
Double Word
Merupakan kelompok 32 bit dengan
penomoran bit dari 0 – 31
1 double word = 2 word = 4 byte = 8 nibble
= 32 bit
Cacahan maksimal = 232 = 4294967296
(biasa disebut sebagai 4Gbyte)
Aritmatika Biner
Penjumlahan :
–
–
–
–
0+0=0
0+1=1
1+0=1
1 + 1 = 0, simpan (carry) 1
25
32
24
16
1
1
Simpan (carry)
1
1
Jumlah
1
1
23
8
1
1
0
22
4
0
0
21
2
1
0
1
1
1
0
20
1
1
1
0
Cara cepat :
– Hasil
– Carry
= sisa pembagian dengan 2
= hasil pembagian dengan 2
Metode ini bisa dipergunakan untuk menjumlahkan
beberapa bilangan biner sekaligus, misal penjumlahan 7
buah bilangan biner sekaligus
25
32
24
16
23
8
22
4
21
2
20
1
1
1
1
1
0
0
1
1
2
Jumlah per digit
0
2
2
0
0
1
1
Carry
1
1
0
1
1
0
Hasil
1
1
0
1
0
0
Pengurangan
Aturan Umum
–
–
–
–
0–0=0
1–0=1
1–1=0
0 – 1 = 1 , pinjam 1
1
1
1
0
1
0
1
1
1
1
Pinjam
1
1
Hasil
0
0
Perkalian
Prosedur sama
dengan perkalian
desimal
Contoh : 9 x 11
1 0 0 1
9
1 0 1 1
11
1 0 0 1
1 0 0 1
0 0 0 0
1 0 0 1
1 1 0 0 0 1 1
99
Pembagian
Prosedur sama dengan pembagian desimal
biasa
TERIMAKASIH
Download