Anda di halaman 1dari 12

Bahasa mesin adalah kode biner asli (native) yang dapat di mengerti oleh mikroprosesor dan di gunakan sebagai

instruksi-instruksi kontrol dalam operasinya.

Instruksi dalam 8086 hingga 80826 adalah mode instruksi 16-bit.


Mode instruksi 16-bit
OPCODE 1-2 byte
MOD-REG-R/M 0-1 byte

Displacement 0-1 byte

Segera 0-2 byte

Mode instruksi 32-bit


Ukuran alamat 0-1 byte Ukuran operand 0-1 byte

OPCODE 1-2 byte

MOD-REG-R/M 0-1 byte

Indeksskala 0-1 byte

Displaceme nt 0-4 byte

Segera 0-4 byte

Format Instruksi pada 8086 Pentium II

Byte pertama dari banyak instruksi bahasa mesin yang memperlihatkan posisi bit-D dan bit-W D W
OPCODE

Opcode = kode operasi pengurangan dsb). Panjang opcode 1-2 byte.

(pemindahan,

penambahan,

6- bit pertama = binary opcode 2-bit sisanya = direction (D)

Jika D= 1, data mengalir ke register (REG) dari R/M yang berada di byte ke dua dari instruksi. Jika D= 0, data mengalir ke R/M dari register (REG) yang berada di byte ke dua dari instruksi.

Jika W=1, doubleword

ukuran

data

adalah

word

atau

BYTE 2 DARI INSTRUKSI BAHASA MEMPERLIHATKAN MOD, REG, R/M

MESIN

YANG

MOD

REG

R/M

Field MOD
Field MOD secara khusus digunakan dalam mode pengalamatan (MOD) untuk instruksi yang dipilih. Field MOD memilih tipe pengalamatan dan apakah displacement hadir dengan tipe yang dipilih. Field MOD pada mode instruksi 16-bit
MOD 00 01 10 11 FUNGSI Tidak ada displacement Displacement extended-sign 8-bit Displacement 16-bit R/M adalah register

Field MOD pada mode instruksi 16-bit, tidak ada prefik override operand ukuran alamat (67H).
Pada mode instruksi 32-bit, dua byte pertama di sebut override prefik. Byte pertama memodifikasi ukuran alamat operand yang digunakan oleh instruksi, dan byte ke dua memodifikasi ukuran register. Bila 80386 hingga Pentium II beroperasi dalam mode instruksi 16-bit (mode real atau protected) dan register 32-bit digunakan, maka di tambahkan register-size prefiks (66H) di depan baris instruksi. Field MOD pada mode instruksi 32-bit
MOD 00 01 10 11 FUNGSI Tidak ada displacement Displacement extended-sign 8-bit Displacement 16-bit R/M adalah register

TABEL TUGAS-TUGAS REG DAN R/M PADA MOD=11


CODE 000 001 010 011 100 101 110 111
Contoh : Instruksi 8BECH dalam bahasa mesin

W=0 (Byte) W=1 (Word) AL AX CL CX DL DX BL BX AH SP CH BP DH SI BH DI

W=1 (Doubleword) EAX ECX EDX EBX ESP EBP ESI EDI

OPCODE 0 0 1 REG 0

1 1

0 1

D 1 R/M 0

W 1 0

MOD 1 1

Byte 1 Byte 2

OPCODE = 100010 MOV


D = 1, Pemindahan ke Register W =1, Word

MOD = 11, R/M adalah register


REG = 101, BP R/M = 100, SP Sehingga instruksi 8BECH = MOV BP,SP

Pengalamatan memori R/M Bila field MOD berisi 00,01,atau 10, field R/M akan mempunyai arti yang baru

TABEL MODE PENGALAMATAN MEMORI R/M 16-BIT

Kode R/M Mode Pengalamatan 000 DS:[BX+SI] 001 DS:[BX+DI] 010 SS:[BP+SI] 011 SS:[BP+DI] 100 DS:[SI] 101 DS:[DI] 110 SS:[BP]* 111 DS:[BX] *Mode pengalamatan khusus
Contoh : Instruksi 8A15H = 10001010 00010101 dalam bahasa mesin

OPCODE 0 0 REG 1

D 1 R/M 0

W 0

MOD 0 0

Byte 1 Byte 2

OPCODE = 100010 MOV D = 1, Pemindahan ke Register W =0, Byte MOD = 00, Tidak ada displacement REG = 010, DL R/M = 101, DS:[DI] Sehingga instruksi = MOV DL,[DI]

Mode Pengalamatan Khusus Terjadi ketika data memori direferensikan hanya dengan mode displacement dari pengalamatan untuk instruksi 16-bit. Contoh : Instruksi MOV [1000H], DL = memindahkan isi register DL ke lokasi memori segmen 1000H. Ketika instruksi hanya mempunyai satu displacement, field MOD selalu 00 dan field R/M selalu 110. Berdasar tabel -> tak ada displacement dan mode pengalamatan [BP]. Istruksi dengan [BP]harus selalu dengan displacement.. Assembler menjaga ini dengan displacement 8-bit (MOD=01)

MOD 0 0

REG 1

R/M 1

Byte 1 Byte 0 2 Byte 3 Byte 4

OPCODE = 100010 MOV


D = 0, Pemindahan dari Register W =0, Byte

MOD = 00, Karena R/M = BP (pengalamatan khusus)


R/M =DS:[BP] Displacement = 1000H Mode Pengalamatan 32-bit 80386 sampai versi di atasnya dengan menggunakan mode instruksi 32-bit atau 16-bit dengan menggunakan prefiks ukuran alamat 67H.

TABEL MODE PENGALAMATAN 32-BIT YANG DIPILIH R/M Kode R/M Mode Pengalamatan 000 DS:[EAX] 001 DS:[ECX] 010 DS:[EDX] 011 DS:[EBX] Memakai byte indeks berskala 100 101 SS:[EBP]* 110 DS:[ESI] 111 DS:[EDI]

ss

Byte s s berskala

indeksIndeks

Base

Contoh : Instruksi MOV EAX,[EBX+4*ECX] -> 67668B048B H

00 01 10 11

X1 X2 X4 X8

Anda mungkin juga menyukai