pemrograman assembler 1
DESCRIPTION
Kuliah 1TRANSCRIPT
Pemrograman Assembly
Buku Acuan
• S’to. Pemrograman Bahasa Assembly edisi online versi 1.0.
• Brey, Barry B. Mikroprosesor Intel 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium Pro, dan Pentium II : Arsitektur, Pemrograman, Antarmuka. Jakarta : Erlangga.
Materi
• Sistem bilangan • Register• Mode pengalamatan data• Operasi perpindahan data• Operasi aritmatika dan logika• Instruksi kendali• Tipe data• Prosedure dan Fungsi.
Sistem Bilangan
• Bilangan Biner– Digit simbol : 0,1
• Bilangan Desimal – Digit simbol : 0,1,2,3,4,5,6,7,8,9
• Bilangan Oktal – Digit simbol : 0,1,2,3,4,5,6,7
• Bilangan Heksadesimal– Digit simbol : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Konversi Bilangan
• Biner -> Desimal– 10112 = (1 * 23) + (0 * 22) + (1 * 21) + (1 * 20)
= (8)10 + (0)10 + (2)10 + (1)10
= 1110
• Oktal -> Desimal– 268 = (2 * 81) + (6 * 80)
= (16)10 + (6)10
= 22
Konversi Bilangan
• Heksadesimal -> Desimal– 7D16 = (7 * 161) + (13 * 160)
= 11216 + 1316
= 12516
Konversi Bilangan
• Desimal -> Biner• Desimal -> Oktal• Desimal -> Heksadesimal• Biner -> Oktal• Biner -> Heksadesimal• Oktal -> Biner• Oktal -> Heksadesimal • Heksadesimal -> Biner• Heksadesimal -> Oktal
Register
EAX AH AL Akumulator
EBX BH BL Base Index
ECX CH CL Count
EDX DH DL Data
ESP SP Stack Pointer
EBP BP Base Pointer
EDI DI Destination Index
ESI SI Source Index
Register
EIP IP Instruction Pointer
EFLAGS FLAGS Flag
CS Code Segment
DS Data Segment
ES Extra Segment
SS Stack Segment
FS
GS
Register
1. Register serbaguna :– Register A (accumulator): digunakan utk operasi
aritmatika dan instruksi logika.– Register B: digunakan bersama register a untuk
operasi aritmatika dan dpt digunakan utk menyimpan alamat offset sebuah lokasi memori.
– Register C: digunakan untuk perulangan, pergeseran dan dpt digunakan untuk menyimpan alamat offset data memori.
– Register D: digunakan utk menyimpan hasil perkalian dan menyimpan hasil dari pembagian.
Register
– Register BP: sbg penunjuk lokasi memori yg digunakan utk mentransfer data memori.
– Register DI: sering berfungsi utk mengalamati data tujuan string pd beberapa instruksi string dan berfungsi sbg register serbaguna 32-bit (EDI) atau 16-bit (DI)
– Register SI: sering berfungsi utk mengalamati data sumber string pd beberapa instruksi string dan berfungsi sbg register serbaguna 32-bit (EDI) atau 16-bit (DI)
Register
2. Special Function Register– IP: digunakan sbg penunjuk instruksi
berikutnya yang akan dijalankan yang terdapat pada segmen kode.
– SP: digunakan sbg penunjuk tumpukan.– FLAGS: digunakan untuk menunjukkan
kondisi mikroprosesor dan mengotrol operasinya.
Register
3. Segment Register :– CS (code segment): bag memori yg memuat
kode (program dan prosedur) yg digunakan oleh mikroprosesor.
– DS (data segment): bag memori yg berisi sebagian besar data yg digunakan oleh program.
– ES (extra segment): segmen data tambahan yg digunakan oleh beberapa instruksi string untuk menyimpan data tujuan.
Bit Flags
– SS (stack segment): segmen ini mendefinisikan area memori yg digunakan utk stack.
– Segmen FS & GS: register segmen tambahan yg tersedia pada mikroprosesor 80386, 80486, pentium, pentium pro, yg memungkinkan dua segmen memori dua segmen memori tambahan diakses oleh program yg dijalankan.
Bit Flags
• C (carry): utk menyimpan carry setelah penjumlahan atau borrow setelah pengurangan.
• Paritas: bernilai 0 utk paritas ganjil dan 1 utk paritas genap.
• A (auxiliary): utk menyimpan carry tambahan setelah penjumlahan atau borrow setelah pengurangan.
• Z (zero): utk menunjukkan hasil operasi aritmatika dan logika adalah nol. (Jika 1 -> operasi menghasilkan nol, dan sebaliknya).
Bit Flags
• S (sign): sbg penunjuk bilangan bertanda dan tidak bertanda.
• T (trap): flag ini memungkinkan trapping melalui suatu chip debugging.
• I (interrupt): flag ini mengendalikan operasi dari pin input INTR.
• D (direction): flag arah ini memilih salah sati dari mode penambahan
Bit Flags
• O (overflow): flag ini digunakan utk menunjukkan hasil operasi melebihi kapasitas penampung.
• IOPL (I/O privilege level): digunakan dlm operasi mode terlindungi memilih tingkatan operasi istimewa utk piranti I/O
• NT (Nested task): menandakan bahwa task yg sedang dilaksanakan bersarang dalam task yg lain.
• RF (Resume): flag ini digunakan bersama debugging utk mengotrol kelanjutan eksekusi setelah instruksi berikutnya.
Bit Flags
• VM (virtual mode): bit ini memilih operasi mode virtual dalam suatu sistem mode terlindungi.
• AC (alignment check): bit ini aktif jika suatu word atau doubleword dialamatkan pada batas suatu nonworld atau nondoubleword.
• VIF (virtual interrupt): salinan bit flag interrupt yg digunakan utk proc pentium dan pentium pro.
• VIP (virtual interrupt pending): menyediakan informasi mengenai interrupt mode utk pentium dan pentium pro.
• ID (identification): menunjukkan bahwa processor mendukung instruksi CPUID
Mode Pengalamatan Data
1. Register Addressing
2. Immediate Addressing
3. Direct Addressing
4. Direct Addressing with Displacement
5. Register Indirect Addressing
6. Register Relative Addressing
Mode Pengalamatan Data
7. Base Plus Index Addressing
8. Base Relative Plus Index Addressing
Bentuk Umum: Mov tjn,sbr
1. Register addressingsintaks: mov reg1,reg2contoh: mov AX,BX
mov SI,DI
2. Immediate addressingsintaks: mov reg,datacontoh: mov AL,2Ah
mov CH,’A’
Mode Pengalamatan Data
3. Direct addressing
sintaks: mov reg_A,[alamat]
mov [alamat],reg_A
(reg_A : accumulator)
contoh: mov AL,[0100h]
mov [0200],AX
Mode Pengalamatan Data
3. Direct addressing
sintaks: mov reg,[alamat]
mov [alamat],reg
contoh: mov DL,[0100h]
mov [0200],CX
Mode Pengalamatan Data
4. Register Indirect addressing
sintaks: mov reg,[reg]
mov [reg],reg
mov [reg],[reg]
contoh: mov EAX,[BX]
mov [CX],AX
Mode Pengalamatan Data
5. Register Relative Addressingsintaks: mov reg,[base+disp]
mov reg,[index+disp] mov [base+disp],reg mov [index+disp],reg
contoh: mov AX,[BX+10h]mov CX,[SI+20h]mov [BP+20h],CHmov [DI+40h],DL
Mode Pengalamatan Data
6. Register Plus Index Addressing
sintaks: mov reg,[base+index]
mov [base+index],reg
contoh: mov DX,[BX+SI]
mov [BP+DI],AX
Mode Pengalamatan Data
7. Register Relative Plus Index Addressing
sintaks:
mov reg,[base+index+disp]
mov [base+index+disp],reg
contoh:
mov DX,[BX+SI+10h]
mov [BP+DI+20h],AX
Mode Pengalamatan Data