Microprosesor perpindahan Data

18
MIKROPROSESOR

Transcript of Microprosesor perpindahan Data

Page 1: Microprosesor perpindahan Data

MIKROPROSESOR

Page 2: Microprosesor perpindahan Data

Selain MOV, instruksi yang berfungsi untuk operasi perpindahan data adalah :

PUSH & PUSHF POP & POPF XCHG LEA Perpindahan String LODS, STOS, MOVS

Page 3: Microprosesor perpindahan Data

Instruksi untuk memasukkan data (langsung, register/lokasi memori) kedalam tumpukan (stack)

Untuk prosesor 8086 & 80286, PUSH selalu mentransfer data 2 byte; sedangkan 80386 keatas bisa mentransfer data 2 atau 4 byte (tergantung dari ukuran register /lokasi memori yang terlibat).

Sintaks : PUSH Reg PUSH [alamat] PUSH data PUSHF

Page 4: Microprosesor perpindahan Data

PUSH BX PUSH EAX PUSH [DI] PUSH [ESI] PUSH 12H PUSH 0A15B PUSHF

Page 5: Microprosesor perpindahan Data

Alamat stack ditunjuk oleh register SS:SP. Suatu data word (dua byte) dimasukkan

kedalam stack; LSB menempati lokasi stack yg dialamati SP-1; MSB menempati lokasi stack yg dialamati SP-2. Setelah data disimpan didalam stack, maka isi register SP akan berkurang 2.

Suatu data double word dimasukkan kedalam stack; LSB menempati lokasi stack yg dialamati SP-1; MSB menempati lokasi stack yg dialamati SP-4. Setelah data disimpan didalam stack, maka isi register SP akan berkurang 4.

Page 6: Microprosesor perpindahan Data
Page 7: Microprosesor perpindahan Data

Instruksi untuk mengambil data stack ke register/lokasi memori.

Untuk prosesor 8086 & 80286, POP selalu mentransfer data 2 byte; sedangkan 80386 keatas bisa mentransfer data 2 atau 4 byte (tergantung dari ukuran register /lokasi memori yang terlibat).

Sintaks : POP Reg POP [alamat] POPF

Page 8: Microprosesor perpindahan Data

POP BX POP EAX POP [DI] POP [ESI] POPF

Page 9: Microprosesor perpindahan Data

Alamat stack ditunjuk oleh register SS:SP. Pada POP BX, data byte yang beralamat

SS:SP dipindahkan ke register BL; data byte yang beralamat SS:SP+1 dipindahkan ke register BH; Setelah dipindahkan dari stack, isi register SP akan bertambah 2

Pada POP EAX, data byte yang beralamat SS:SP dipindahkan ke register AL; data byte yang beralamat SS:SP+1 dipindahkan ke register AH; Extended register berisi SP+2 & SP+3; Setelah dipindahkan dari stack, isi register SP akan bertambah 4

Page 10: Microprosesor perpindahan Data

Berfungsi untuk menukarkan isi suatu register ke register lainnya atau ke lokasi memory.

Tidak dapat digunaka untuk menukar antar lokasi memory.

Sintaks : XCHG reg, reg XCHG reg, [alamat]

Contoh :XCHG AX, BXXCHG DX, [SI] DX DSx10H + SIXCHG [SI], CH

Page 11: Microprosesor perpindahan Data

Mengambil alamat suatu data pada lokasi memory tertentu ke register 16 bit

Sintaks :LEA reg, [alamat]LEA reg, varContoh :LEA BX, [DI] alamat offset yang ditunjuk oleh

[DI] diletakkan di register BX; sama dengan memindahkan isi register DI ke register BX

Page 12: Microprosesor perpindahan Data

Memindahkan data string pada segmen data yang alamat ofsetnya ditunjuk oleh isi register SI ke accumulator (AL,AX)

Setelah memindahkan data byte (ke AL) atau word (ke AX) isi register SI akan di increment (bila flag D=0) atau di decrement (bila flag D=1).

Instruksi LODS bisa ditambah B/W/D (byte, word, double word).

Page 13: Microprosesor perpindahan Data

LODSB ; data pada lokasi memori alamat DSx10H+ SI dipindah ke AL; SI=SI±1

LODSW ; data pada lokasi memori alamat DSx10H+ SI dipindah ke AX; SI=SI±2

LODSD ; data pada lokasi memori alamat DSx10H+ SI dipindah ke EAX; SI=SI±4

LODS DAT1 ; data dari variabel DAT1 dipindahkan ke AL/AX/EAX ; SI=SI±1 / SI=SI±2/ SI=SI±4 ; tergantung ukuran DAT1.

Page 14: Microprosesor perpindahan Data

Memindahkan string pada register accumulator (AL,AX,EAX) ke extra segmen yang alamat offsetnya ditunjuk oleh register DI (ES:DI)

Instruksi STOS bisa ditambah B/W/D (byte, word, double word).

Page 15: Microprosesor perpindahan Data

STOSB ; isi register AL dipindahkan ke lokasi alamat ESx10H + DI; DI=DI±1

STOSW ; isi register AX dipindahkan ke lokasi alamat ESx10H + DI; DI=DI±2

STOSD ; isi register EAX dipindahkan ke lokasi alamat ESx10H + DI; DI=DI±4

STOS DAT1 ; isi AL/AX/EAX dipindahkan ke variabel DAT1; DI=DI±1/ DI=DI±2/ DI=DI±4 tergantung ukuran DAT1

Page 16: Microprosesor perpindahan Data

Memindahkan string dari lokasi memori ke lokasi memori lainnya.

Instruksi MOVS bisa ditambah B/W/D (byte, word, double word).

Page 17: Microprosesor perpindahan Data

MOVSB ; isi lokasi memori beralamat DSx10H+SI ke lokasi memori ESx10H+DI; SI=SI±1; DI=DI±1

MOVSW ; isi lokasi memori beralamat DSx10H+SI ke lokasi memori ESx10H+DI; SI=SI±2; DI=DI±2

MOVSD ; isi lokasi memori beralamat DSx10H+SI ke lokasi memori ESx10H+DI; SI=SI±4; DI=DI±4

MOVS DAT1,VAR1 ; isi variabel VAR1 ke variabel DAT1; SI=SI±1/2/4; DI=DI±1/2/4 tergantung ukuran data.

Page 18: Microprosesor perpindahan Data