Mikroprocessor-antarmuka-sk2023-3.pptx

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mikroprocessor-antarmuka-sk2023-3.pptx as PDF for free.

More details

  • Words: 1,341
  • Pages: 31
EE-2623 Mikroprosesor & Antarmuka Materi 3 Instruksi Team Dosen 2006

JENIS INSTRUKSI

Perpindahan Data MOV

Clock

Acc  mem

10

Mem  acc

10

RR

2

Mem  R

8 + EA

R  mem

9 + EA

Immed  R

4

Immed  mem

10 + EA

R  seg R

2

Mem  seg R

8 + EA

Seg R  R

2

Seg R  mem

9 + EA

Aritmetik ADD/SUB

Clock

DIV

Clock

RR

3

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

Clock

Shift & Rotate

Clock

8 bit reg

70 sd 77

Single bit reg

2

16 bit reg

118 sd 133

Var bit reg

8 + 4/bit

8 bit mem

(76 sd 83)+EA

Single bit mem

15 + EA

16 bit mem

(124 sd 139)+EA

Var bit mem

20+EA+4/bit

Kendali Program JMP

Clock

Clock

short

15

JCXZ

6 (no branch) 18 (branch)

Intrasegment direct

15

J condition

4 (no branch) 16 (branch)

Intersegment direct

15

Intrasegment using reg mode

11

Intrasegment indirect

18 + EA

Intersegment indirect

24 + EA

Instruksi

Clock

Instruksi

Clock

INC/DEC reg8

3

MOV reg,reg

2

INC/DEC data

23+EA

MOV mem,reg

13+EA

INC/DEC reg16

3

MOV reg,mem

12+EA

LOGIC reg,reg

3

MOV mem,imm

14+EA

LOGIC mem,reg 24+EA

MOV reg,imm

4

LOGIC reg,mem 13+EA

MOV mem,acc

14

MOV seg,reg

2

MOV acc,mem

14

MOV reg,seg

2

MOV seg,mem

12+EA

MOV mme,seg

13+EA

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

4

CS:0106

74 02

JZ 010A

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)

16 (branch)

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 byte 1 1 0 0 0 1 0 op code D W mod

byte 2 reg

R/M

byte 3

byte 4

low displacement

high displacement or

direct address low byte

direct address high byte

(5 bit) mode pengalamatan Pemilihan register Data byte/word ; 0=byte, 1=word Arah transfer data, dari/ke register ; 0=dari, 1=ke kode operasi (operation code)

Contoh coding MOV AL,BL

Kode Operasi Register 8088/86 Register W=0 W=1 AL AX BL BX CL CX DL DX AH SP BH DI CH BP DH SI

code 000 011 001 010 100 111 101 110

Seg. Reg. CS DS ES SS

code 01 11 00 10

Pola MOD dan R/M MOD R/M 000 001 010 011 100 101 110 111

00

01

10

[BX] + [SI] [BX] + [DI] [BP] + [SI] [BP] + [DI] [SI] [DI] d16 direct address [BX]

[BX] + [SI] + d8 [BX] + [DI] + d8 [BP] + [SI] + d8 [BP] + [DI] + d8 [SI] + d8 [DI] + d8

11

[BX] + [SI] + d16 [BX] + [DI] + d16 [BP] + [SI] + d16 [BP] + [DI] + d16 [SI] + d16 [DI] + d16

W=0 AL CL DL BL AH CH

W=1 AX CX DX BX SP BP

[BP] + d8

[BP] + d16

DH

SI

[BX] + d8

[BX] + d16

BH

DI

MEMORY MODE d8 : 8 - bit displacement, d16 : 16 - bit displacement

REGISTER MODE

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

byte 1 1 0 1 1 w

reg

byte 2 data - low byte

byte 3 data - high byte (w=1)

Immediate Addressing Mode

0 0 1 reg 1 1 0 Segment ovveride prefix

byte 1 1 0 0 0 1 0 op code D W mod

byte 2 reg

R/M

Op. Code Acc. ke/dari memori

byte 1 1 0 1 0 0 0 d w

byte 2 Low byte address

byte 3 High byte address

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) Ditandai • Contoh : dengan [ ] – MOV DL, [2400]

;copy isi memori dengan alamat DS:2400H ke DL

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 Ditandai • contoh dengan [ ] – MOV AL,[BX] • PA (Physical Address) dan EA (Effective Address) ?

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: 1. MOV DX, [SI]+5 ; 2. 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

Segment Register

CS

DS

ES

SS

Offset Register

IP

SI, DI, BX

SI, DI, BX

SP,BP

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

SS: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.

BIU

 mov CL,[BX]; register indirect

C-BUS

A.M.  mov [SI + 43H],DH; indexed

ES CS SS DS IP

relative A.M.  mov AL,9CH; immediate A.M. (?)

4 3 2 1

INSTRUCTION STREAM BYTE QUEUE

CONTROL SYSTEM A- BUS

EU

 mov CS:[BX],DL; segment

ovverides (?)

AH BH CH DH

AL BL CL DL SP BP SI DI

ALU OPERAND FLAGS