Instruksi-Instruksi Pemindahan Datap_musa.staff.gunadarma.ac.id/Downloads/files/3967/Bab+2... ·...

Preview:

Citation preview

Instruksi-InstruksiPemindahan Data

Sistem KomputerUniversitas Gunadarma

Alamat Load-Effective

n Ada beberapa instruksi LEA dalam kumpulaninstruksi mikroprosesor¡ Tabel 4.9 berisi instruksi alamat LEA

n LEA¡ Intruksi LEA memuat register 16-bit atau 32-

bit dengan alamat offset dari data yang ditetapkan oleh operand.

¡ Contohnya, LEA AX,NUMB¡ Membandingkan : LEA BX,[DI] & MOV BX,[DI]¡ Contoh 4.3

Alamat Load-Effective (lanjt.)

Alamat Load-Effective (lanjt.)

Alamat Load-Effective (lanjt.)

n LDS, LES, LFS, LGS, LSS¡ Instruksi LDS, LES, LFS, LGS, LSS mengisi

register 16-bit atau register 32-bit denganalamat offset dan register segmen DS, ES, FS, GS, atau SS

¡ Gambar 4.15 menunjukkan contoh instruksiLDS, BX,[DI] n Instruksi ini memindahkan bilangan 32-bit yang

dialamatkan oleh DI dalam segmen data kedalam register BX dan DX

n Contoh 4.4

Alamat Load-Effective (lanjt.)

Alamat Load-Effective (lanjt.)

Pemindahan Data String

n Ada 5 instruksi pemindahan data string: LODS, STOS, MOVS, INS, dan OUTS

n Flag Arah¡ Flag arah (D) –berada pada register flag-

memilih operasi auto-increment (D=O) atauauto-decrement (D=1) pada register DI dan SI pada saat operasi string.

¡ Instruksi CLD akan membuat falg D=0, danSTD akan membuat flag D=1

Pemindahan Data String (lanjt.)

n DI dan SI¡ Alamat offset pada DI mengakses data dalam

segmen ekstra untuk semua instruksi string yang digunakan.

¡ Alamat offset pada SI mengakses data secaradefault pada segmen data

n LODS¡ Instruksi LODS memuat register AL, AX, atau EAX

dengan data yang disimpan pada alamat offset segmen data yang ditunjuk oleh register SI (Tabel4.10)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

¡ Gambar 4.16 memperlihatkan pengaruh eksekusiinstruksi LODSW jika flag D=0, SI=1000H, danDS=1000H

n STOS¡ Instruksi STOS menyimpan isi register AL, AX, atau

EAX pada lokasi memori segmen ekstra yang alamatnya ada di register DI

¡ Tabel 4.11 berisi instruksi STOS yang diijinkan¡ Instruksi STOSB (stores a byte), STOSW (stores a

word) dan STOSD (stores a doubleword)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

¡ Dalam contoh 4.5 diasumsikan bahwa instruksiSTOSW digunakan untuk membersihkan display teks pada monitor

n MOVS¡ Instruksi MOVS digunakan untuk memindahkan data

byte atau word atau doubleword dari satu lokasimemori ke lokasi memori yang lain (Tabel 4.13)

¡ Instruksi MOVS memindahkan data dari segmendata dengan alamat ditunjukkan oleh SI ke segmenekstra dengan alamat yang ditunjukkan oleh DI

¡ Contoh 4.6 merupakan program pendek yang menggunakan MOVS

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

n INS¡ Instruksi INS (input string) digunakan untuk

memindahkan data dari piranti I/O ke lokasi memoridi segmen ekstra dengan alamat yang ditunjukkanoleh register DI

¡ Alamat I/O diisikan pada register DX¡ Lihat tabel 4.14 dan contoh 4.7

n OUTS¡ Instruksi OUTS (output string) digunakan untuk

memindahkan data dari lokasi memori segmenyang ditunjukkan SI ke piranti I/O dengan alamatDX à Tabel 4.15 & contoh 4.8

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Pemindahan Data String (lanjt.)

Recommended