Instruksi dalam 8086 hingga 80826 adalah mode instruksi 16-bit.Bahasa mesin adalah kode biner asli (native) yang dapat di mengerti oleh mikroprosesor dan di gunakan sebagai instruksi-instruksi kontrol dalam operasinya. 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 .

data mengalir ke R/M dari register (REG) yang berada di byte ke dua dari instruksi. Panjang opcode 1-2 byte. Jika W=1. data mengalir ke register (REG) dari R/M yang berada di byte ke dua dari instruksi. (pemindahan. 6. doubleword ukuran data adalah word atau . Jika D= 0. penambahan.bit pertama = binary opcode 2-bit sisanya = direction (D) Jika D= 1.Byte pertama dari banyak instruksi bahasa mesin yang memperlihatkan posisi bit-D dan bit-W D W OPCODE Opcode = kode operasi pengurangan dsb).

Field MOD memilih tipe pengalamatan dan apakah displacement hadir dengan tipe yang dipilih. R/M MESIN YANG MOD REG R/M Field MOD Field MOD secara khusus digunakan dalam mode pengalamatan (MOD) untuk instruksi yang dipilih. REG.BYTE 2 DARI INSTRUKSI BAHASA MEMPERLIHATKAN MOD. 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 32-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. Pada mode instruksi 32-bit. Bila 80386 hingga Pentium II beroperasi dalam mode instruksi 16-bit (mode real atau protected) dan register 32-bit digunakan. dua byte pertama di sebut override prefik. maka di tambahkan register-size prefiks (66H) di depan baris instruksi. tidak ada prefik override operand ukuran alamat (67H). Byte pertama memodifikasi ukuran alamat operand yang digunakan oleh instruksi. dan byte ke dua memodifikasi ukuran 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 1 0 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. BP R/M = 100. Word MOD = 11. Pemindahan ke Register W =1.atau 10. R/M adalah register REG = 101. SP Sehingga instruksi 8BECH = MOV BP.SP Pengalamatan memori R/M Bila field MOD berisi 00.01. 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 .

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

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

Byte MOD = 00. . Pemindahan dari Register W =0.OPCODE = 100010  MOV D = 0. 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 .

Sign up to vote on this title
UsefulNot useful