35
Instruksi-Instruksi Pemindahan Data Sistem Komputer Universitas Gunadarma

Instruksi-Instruksi Pemindahan Datasupriyan.staff.gunadarma.ac.id/Downloads/files/9816/Bab+2+-+Mikro... · Sekilas Tentang MOV n Intruksi MOV diperkenalkan bersama-sama dengan instruksi

Embed Size (px)

Citation preview

Instruksi-InstruksiPemindahan Data

Sistem KomputerUniversitas Gunadarma

Sekilas Tentang MOV

n Intruksi MOV diperkenalkan bersama-sama dengan instruksi bahasa mesinyang dapat digunakan dalam bermacam-macam mode pengalamatan daninstruksi.¡ Bahasa mesin adalah kode biner asli (native)

yang dapat dimengerti oleh mikroprosesordan dugunakan sebagai instruksi-instruksikontrol dalam operasinya.

n Lihat format instruksi pada gambar 4.1

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Opcode¡ Opcode memilih operasi (penambahan,

pengurangan, pemindahan dll) yang dilakukan olehmikroprosesor.

¡ Panjang opcode adalah satu atu dua byte untukkebanyakan instruksi dalam bahasa mesin (Gambar4.2)n 6-bit pertama dari byte pertama adalah binary op-

coden 2-bit sisanya menandakan direction (D) dari aliran

data dan indikasi apakah data adalah byte atauword (W)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

¡ Dengan memperhatikan Gambar 4.3 untuk pola bit biner dari byte opcode kedua (reg-mod-r/m)

n Field MOD ¡ Field MOD secara khusus digunakan dalam mode

pengalamatan (MOD) untuk instruksi yang dipilihdan memilih tipe pengalamatan dan apakahdisplacement hadir dengan tipe yang dipilih (Tabel4.1)

¡ Instruksi MOV AL, [DI], MOV AL, [DI+2] and MOV Al, [DI+1000H]!

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Tugas-tugas Register¡ Tabel 4.3 berisi tugas-tugas register untuk field

REG dan field R/M (MOD=11)¡ Lihat Gambar 4.4

n Pengalamatan Memori R/M ¡ Apabila field MOD berisi 00, 01, atau 10, field

R/M akan mempunyai arti yang baru (Tabel 4.4)¡ Gambar 4.5 mengilustrasikan versi bahasa

mesin dari instruksi 16-bit MOV DL,DI atauinstruksi (8A15H)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Mode Pengalamatan Khusus¡ Hal ini terjadi ketika data memori

direfensikan hanya dengan mode displacement dari pengalamatan untukinstruksi 16-bit àMOV [1000H],DL

¡ Ketika instruksi hanya mempunyai 1 displacement, maka field MOD selalu 00 dan field R/M selalu 110 (lihat Gambar 4.6, 4.7)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Mode Pengalamatan 32-bit¡ Tabel 4.5 memperlihatkan pengkodean

untuk R/M digunakan untuk mode pengalamatan 32-bit secara khusus.

¡ Byte indeks berskala (R/M=100) terutamadigunakan ketika dua register ditambahkan ke dalam alamat memoridalam suatu instruksi (GAMBAR 4.8)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Instruksi Segera¡ Diasumsikan bahwa instruksi MOV WORD PTR

[BX +1000H], 1234H, instruksi inimemindahkan 1234H ke lokasi memoriberukuran-word yang dialamatkan olehpenjumlahan dari 1000H, BX, dan DS x 10H

¡ Instruksi 6-byte menggunakan 2-byte untukfield opcode, W, MOD, dan R/M, 2 dari 6-byte adalah data 1234H, dan 2 dari 6-byte adalahdisplacement dari 1000H (lihat gambar 4.9)

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

n Instruksi MOV segmen¡ Bila isi register segmen dipindahkan oleh instruksi

MOV, PUSH, atau POP, maka sekumpulan bit register yang khusus (field REG) memilih register segmen (lihat tabel 4.6)

¡ Gambar 4.10 menunjukkan sebuah instruksi MOV BX,CS yang diubah menjadi biner

¡ Opcode untuk setiap tipe instruksi MOV berbedadibanding dengan instruksi MOV sebelumnya

¡ Segmen alamat dapat dipindah antara setiap register 16-bit alamat atau lokasi memori 16-bit.

Sekilas Tentang MOV(lanjt.)

Sekilas Tentang MOV(lanjt.)

PUSH/POPn Instruksi ini sangat penting karena kedua instruksi ini

berfungsi untuk menyimpan dan mengambil (ataumembuka) data dari memori stack LIFOn Mikroprosesor memiliki enam bentuk instruksi

PUSH dan POP yaitu : register, memory, immediate, segment register, flags, dan semuaregister.

n PUSH¡ Memindahkan 2 byte dari data ke stack¡ Instruksi PUSHA yang menyalin isi dari kumpulan

regiater internal kecuali register segmen ke stack.

PUSH/POP (lanjt.)

¡ Instruksi PUSHA (push all) menyalin isi register-register ke stack dengan urutan sebagai berikut : AX, BX, CX, DX, BX, SP, BP, SI, dan DI

¡ Instruksi PUSHF (push flags) menyalin isi register flag ke dalam stack

¡ Gambar 4.11 memperlihatkan operasi dari instruksiPUSH AX n AX --> SS:[SP-1] = AH, SS:[SP-2] = AL, dan

kemudian SP = SP - 2¡ Gambar 4.12 menggambarkan hasil dari instruksi

PUSHA

PUSH/POP(lanjt.)

PUSH/POP(lanjt.)

PUSH/POP (lanjt.)

¡ Tabel 4.7 berisi instruksi PUSH termasuk PUSHA dan PUSHF

n POP¡ Intruksi POP adalah kebalikan dari instruksi PUSH,

contohnya menghapus data dari stack danmenempatkannya pada register 16-bit register segmen atau lokasi memori 16-bit.

¡ POPF (pop flags) menghapus bilangan 16-bit daristack dan menempatkannya pada register flag

¡ POPFD menghapus bilangan 32-bit dari stack danmenempatkannya pada register flag 32-bit extended.

PUSH/POP(lanjt.)

PUSH/POP (lanjt.)

¡ POPA (pop all) menghapus 16-bit dari stack danditempatkan pada register berikutnya, dalam urutanyang diperlihatkan sebagai berikut : DI, SI, BP, SP, BX, DX, CX, dan AX; ini merupakan urutan kebalikan daricara ditempatkan ke dalam stack pada instruksiPUSHA

¡ Gambar 4.13 menunjukkan bagaimana instruksi POP BX menghapus data dari stack dan menempatkannyapada register BX

¡ Tabel 4.8 memperlihatkan semua variasi opcode yang digunakan untuk instruksi POP

PUSH/POP(lanjt.)

PUSH/POP(lanjt.)

PUSH/POP (lanjt.)

n Inisialisasi Stack¡ Ketika area stack diinisialisasi, stack memuat

register SS dan SP; register SS biasanya dirancangdengan lokasi segmen stack yang bawah

¡ Gambar 4.14 memperlihatkan bagaimana nilai inimengakibatkan data dimasukkan ke bagian atassegmen stack dengan instruksi PUSH CX

PUSH/POP(lanjt.)