EE-2623 Mikroprosesor & Antarmuka Materi 3 Instruksi Team Dosen 2006
JENIS INSTRUKSI
Perpindahan Data MOV Clock Acc mem 10 Mem acc R R 2 Mem R 8 + EA R mem 9 + EA Immed R 4 Immed mem 10 + EA R seg R Mem seg R Seg R R Seg R mem
Aritmetik ADD/SUB Clock DIV MUL Shift & Rotate R R 3 Mem R 9 + EA 8 bit reg 80 sd 90 Mem R 9 + EA 16 bit reg 144 sd 162 R mem 16 + EA 8 bit mem (86 sd 96)+EA Immed R 4 16 bit mem (150 sd 168)+EA Immed mem 17 + EA MUL Shift & Rotate 70 sd 77 Single bit reg 2 118 sd 133 Var bit reg 8 + 4/bit (76 sd 83)+EA Single bit mem 15 + EA (124 sd 139)+EA Var bit mem 20+EA+4/bit
Kendali Program JMP Clock short 15 JCXZ 6 (no branch) 18 (branch) Intrasegment direct J condition 4 (no branch) 16 (branch) Intersegment direct Intrasegment using reg mode 11 Intrasegment indirect 18 + EA Intersegment indirect 24 + EA
Instruksi Clock INC/DEC reg8 3 MOV reg,reg 2 INC/DEC data 23+EA MOV mem,reg 13+EA INC/DEC reg16 MOV reg,mem 12+EA LOGIC reg,reg MOV mem,imm 14+EA LOGIC mem,reg 24+EA MOV reg,imm 4 LOGIC reg,mem MOV mem,acc 14 MOV seg,reg MOV acc,mem MOV reg,seg MOV seg,mem MOV mme,seg
Effective Address Addressing Mode Clock Direct 6 Register indirect 5 Register relative 9 Based indexed (BP)+(DI) or (BX)+(SI) 7 (BP)+(SI) or (BX)+(DI) 8 Based indexed relative (BP)+(DI)+disp or (BX)+(SI)+disp 11 (BP)+(SI)+disp or (BX)+(DI)+disp 12
Contoh soal: Address Mnemonic Assembly Clock CS:0100 B8 34 12 MOV AX,1234 4 CS:0103 35 34 12 XOR AX,1234 CS:0106 74 02 JZ 010A 16 (branch) CS:0108 B3 12 MOV BL,12 - (skiped) CS:010A 8A 0E 34 12 MOV CL,[1234] 8 + 6(EA) CS:010E 88 16 34 12 MOV [1234],DL 9 + 6(EA) Total 53
Format instruksi bhs mesin 8088 Terdiri dari Op-code 8 bit + Operand (data,register,dll) MOV AX,BX 89 (opcode) D8 (operand)
Coding Sesungguhnya bhs mesin diciptakan untuk kemudahan programmer (manusia) Control Unit di CPU hanya mengerti pola bit perintah MOV AX,BX 89 D8 MOV AL,[2400] A0 00 24 ADD AX,BX 01 D8
Kode untuk perintah MOV
Contoh coding MOV AL,BL
Kode Operasi Register 8088/86
Pola MOD dan R/M
Contoh u/ berbagai Ad. Mode mov SP,BX; register A. M. mov CX,[4372H]; direct A.M. mov CL,[BX]; register indirect A.M. mov [SI + 43H],DH; indexed relative A.M. mov AL,9CH; immediate A.M. (?) mov CS:[BX],DL; segment ovverides (?)
Kode Operasi Immediate A.M. dan Segment Override
Op. Code Acc. ke/dari memori
Latihan
Mode Pengalamatan
Mode Pengalamatan 80x86 Addressing Mode / Mode Penglamatan : adalah cara, bagaimana mp dapat mengakses operand Mode Pengalamatan pada 80x86: (1) register (2) immediate (3) direct (4) register indirect (5) based relative (6) indexed relative (7) based indexed relative
Mode Pengalamatan Register Menggunakan register untuk menyimpan data yang akan dimanipulasi Pada mode ini tidak operasi pada memori Operasi relatif cepat Contoh: MOV BX, DX ;copy isi DX ke BX MOV ES, AX ;copy isi AX ke ES ADD AL, BH ;jumlahkan isi BH dan AL, hasilnya di AL Register sumber dan tujuan mempunyai ukuran yang sama
Mode Pengalamatan Immediate Operand (source) adalah konstanta, yang terletak setelah opcode Operasinya sangat cepat Immediate addressing mode dapat digunakan pada semua register, kecuali register segmen dan flag (?) Contoh: MOV AX,2550H ; bilangan 2550H dimasukkan ke AX MOV CX,625 ; bilangan 625d dimasukkan ke CX MOV BL, 40H ; bilangan 40H dimasukkan ke BL
Mode Pengalamatan Langsung (Direct) Operand dari instruksi ini merupakan alamat memori data yang akan diakses Alamat ini merupakan EA (Effective Address) Contoh : MOV DL, [2400] ;copy isi memori dengan alamat DS:2400H ke DL Ditandai dengan [ ]
Mode Pengalamatan Register Tidak Langsung (indirect) Alamat lokasi memori data yang akan diakses tersimpan dalam register Register yang digunakan pada mode ini : SI, DI, dan BX contoh MOV AL,[BX] PA (Physical Address) dan EA (Effective Address) ? Ditandai dengan [ ]
Mode Pengalamatan Relatif Base (Base Relative) Menggunakan register BX and BP, untuk mendapatkan EA (effective address), ditambah dengan displacement Segment yang digunakan untuk mendapatkan physical address (PA) adalah: DS untuk BX SS untuk BP Contoh : MOV CX,[BX]+10 Pindahkan isi DS:BX+10 dan DS:BX+10+1 ke reg. CX ; PA = ?
Mode Pengalamatan Relatif Berindeks (Indexed relative) Sama seperti based relative addressing mode, register yang digunakan adalah DI dan SI Contoh: MOV DX, [SI]+5 ; MOV CL, [DI]+20 ;
Mode Pengalamatan Indeks Berbasis (Based indexed) kombinasi based dan indexed addressing modes Menggunakan satu base reg. dan satu index reg. Contoh: MOV CL, [BX][DI] + 8 MOV CH, [BX][SI]+20 MOV AH,[BP][DI]+12 MOV AH,[BP][SI]+29
Offset Register untuk berbagai Segment SS ES DS CS Segment Register SP,BP SI, DI, BX IP Offset Register
Segmen Override CPU 80x86 memungkinkan program untuk mengganti register segmen yang seharusnya dengan register segmen yang lain. Contoh : MOV AL,[BX] ; penunjuk alamat fisik adalah DS:BX Bandingkan dengan : MOV AL,ES:[BX].
Contoh segment overrides Instruksi Segmen yg digunakan Segmen seharusnya MOV AX,CS:[BP] CS:BP SS:BP MOV DX,SS:[SI] SS:SI DS:SI MOV AX,DS:[BP] DS:BP MOV CS,ES:[BX]+12 ES:BX+12 DS:BX+12 MOV SS:[BX][DI]+32,AX SS:BX+DI+32 DS:BX+DI+32
mov SP,BX; register A. M. mov CX,[4372H]; direct A.M. mov CL,[BX]; register indirect A.M. mov [SI + 43H],DH; indexed relative A.M. mov AL,9CH; immediate A.M. (?) mov CS:[BX],DL; segment ovverides (?)