Bahasa Assembler :
Instruksi MOV
|
- kopi operasi kedua (sumber) ke operasi pertama (tujuan).
- Sumber bisa merupakan suatu nilai berubah, register umum atau lokasi memori.
- Register tujuan merupakan suatu register umum, atau lokasi memori.
- Kedua operasi harus berukuran yang sama, yang mana bisa merupakan suatu byte atau word.
Ini tipe dari operasi yang didukung:
MOV REG, memory MOV memory,
REG MOV REG, REG MOV memory, immediate MOV REG, immediate
REG: AX, BX, CX, DX, AH,
AL, BL, BH, CH, CL, DH, DL, DI, SI, BP,
SP.
memory: [BX], [BX+SI+7], variable,
etc...
immediate: 5, -24, 3Fh, 10001101b,
etc...
|
Untuk segment register hanya tipe MOV yang didukung:
MOV SREG, memory MOV memory,
SREG MOV REG, SREG MOV SREG,
REG
SREG: DS, ES, SS, and only as
second operand: CS.
REG: AX, BX, CX, DX,
AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP,
SP.
memory: [BX], [BX+SI+7], variable,
etc...
| Intruksi MOV tidak dapat
digunakan untuk merubah nilai dari CS dan IP.
Dibawah adalah program pendek untuk mempraktekkan penggunaan intruksi
MOV:
#MAKE_COM# ; compiler membuat file com.
ORG 100h ; pedoman yang dibutuhkan untuk program com.
MOV AX, 0B800h ; merubah AX ke nilai hexadecimal dari B800h.
MOV DS, AX ; kopi nilai AX ke DS.
MOV CL, 'A' ; merubah CL ke kode ASCII, 'A' adalah 41h.
MOV CH, 01011111b ; merubah CH ke nilai binari.
MOV BX, 15Eh ; merubah BX ke 15Eh.
MOV [BX], CX ; kopi isi dari CX ke alamat memori B800:015E
RET ; kembali ke program.
|
kamu dapat kopi & tempel program
diatas ke Emu8086 kode editor, dan tekan [Compile and
Emulate] (atau tekan F5).
Jendela Emulator harus terbuka waktu
dijalankan, klik [Single Step] dan lihat nilai registernya.
Tanda ";" digunakan sebagai komentar, tanda lain setelah ";" akan
diabaikan oleh kompiler.
Kamu harus melihat seperti dibawah ini ketika
programnya selesai:
Sebenarnya program diatas ditulis secara langsung ke video memori, maka kamu
mungkin melihat bahwa Mov adalah suatu instruksi yang sangat kuat.
|