Instruksi Perpindahan Data

Slides:



Advertisements
Presentasi serupa
JWASM Input Keyboard.
Advertisements

Program Bahasa Rakitan Tanpa DEBUG.COM
Pemograman DEBUG.
Praktikum Organisasi Komputer (Bahasa Assembly)
BAB IV MODE PENGALAMATAN
POINTER A. PENDAHULUAN Tanpa pointer untuk memindahkan data dari suatu variabel ke register 8 bit, maka variabel tersebut haruslah 8 bit juga yang dapat.
Bhakti Yudho Suprapto, MT
Arsitektur Komputer “Mode Pengalamatan”
Turbo Assembly Stack.
Turbo Assembly Masukan dari Keyboard.
REGISTER Oleh : Oman Somantri, S.Kom
PENDAHULUAN Dalam bab ini, kita akan mengembangkan pengetahuan mengenai dasar I/O dan antar muka periferal yang dapat diprogram denagn memelajari sebuah.
Pemrograman Mikroprosesor
Program Bahasa Rakitan Tanpa DEBUG.COM
Instruksi Logika Dasar
Mode Pengalamatan Mengatasi keterbatasan format instruksi
ADDRESSING MODES Penjelasan dan program lihat pada Pemograman Bahasa Assembly (Ilmu Komputer)
SET INSTRUKSI.
JWASM Mencetak angka.
BAHASA RAKITAN BAGIAN 3.
Johannes Simatupang, MKom, Cobit5-F NIDN :
Kuliah 2: 2.1. Struktur Register 2.2. Mode Pengalamatan
REGISTER.
Bahasa RakitanABM 1 Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt.
Mode Pengalamatan.
Pertemuan 1 Mengapa Belajar Bahasa Rakitan ??
ORGANISASI & ARSITEKTUR KOMPUTER 2 STRUKTUR & FUNGSI CPU IBP WIDJA, MT
Mode Pengalamatan Memori
EE-2623 Mikroprosesor & Antarmuka
SISTEM BILANGAN DAN REGISTER
Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada.
MODE DAN FORMAT PENGALAMATAN.
Program Bahasa Rakitan dengan DEBUG.COM
Pertemuan 5 Struktur program bahasa rakitan
Arsitektur Perangkat Lunak 8086
Pertemuan 4 (Set Instruksi ARM)
PENDAHULUAN Pembuatan perangkat lunak yang efisien untuk mikroprosesor membutuhkan pengenalan yang menyeluruh mengenai mode pengalamatan yang digunakan.
Praktikum 6.
INSTRUKSI LOGIKA DASAR
Register.
Pointer.
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Pengenalan Assembler.
BAB IV Teknik Pemrograman
Pengantar Bahasa Rakitan
Mode Pengalamatan Mengatasi keterbatasan format instruksi
Stack dan Procedure.
Stack Segment & Bahasa Assembly
Pendahuluan Interupsi
Pertemuan III SET Instruksi.
Struktur Register Mikroprosesor 8086
Struktur Register dan Metode Pengalamatan
Operasi String.
Instruksi Perpindahan Data Miscellaneous
REGISTER.
Mode Pengalamatan &Jenis-Jenis Instruksi
ORGANISASI & ARSITEKTUR KOMPUTER 2 SET INSTRUKSI IBP WIDJA, MT
Sistem Bilangan & REGISTER
ARSITEKTUR KOMPUTER.
Pengantar Bahasa Rakitan
Pengenalan Assembler.
BAB III REGISTER 8088 Mikroprosesor 8088 berorientasi pada register
Pertemuan 6 Instruksi Bahasa Rakitan 8088
OPERASI PADA STRING.
ASSEMBLER #3 MK. PEMROGRAMAN SISTEM
Computer Organization and Architecture
Mikroprosesor dan Komputer
Mode Pengalamatan Mulyono.
Ilustrasi kinerja CPU.
Struktur Register dan Metode Pengalamatan Memori
Transcript presentasi:

Instruksi Perpindahan Data PENDAHULUAN Bab ini akan menitikberatkan pada pembahasan mengenai instruksi perpindahan data. Instruksi perpindahan data meliputi MOV, MOVSX, MOVZX, PUSH, POP, BSWAP, XCHG, XLAT, IN, OUT, LEA, LDS, LES, LFS, LSS, LAHF, SAHF, dan instruksi string yaitu MOVS, LODS, STOS, INS, OUTS. Instruksi transfer data diimplementasikan terakhir pada Pentium Pro sampai Pentium 4 adalah instruksi CMOV (conditional move). Instruksi perpindahan data dijelaskan pertama kali karena kerap digunakan dalam program dan mudah dimengerti. Mikroprosesor membutuhkan program assembler, yang menghasilkan bahasa mesin, karena instruksi bahasa mesin terlalu kompleks dibuat secara efisien oleh manusia. Bab ini akan mendeskripsikan sintaks bahasa assembly dan beberapa direktifnya. [ Bahasan ini mengasumsikan pengguna mengembangkan perangkat lunak pada PC IBM atau sejenisnya. Pengguna disarankan untuk menggunakan Microsoft Macro Assembler (MASM) sebagai alat pengembangan meskipun tak menutup kemungkinan untuk memanfaatkan Intel Assembler (ASM), Borland Turbo Assembler (TASM) atau perangkat lunak lain yang mempunyai fungsi serupa. Versi terbaru dari TASM menyerupai program MASM. Bahasan ini menyajikan informasi yang berfungsi dalam assembler Microsoft MASM, tetapi sebagian besar program di- assembly tanpa modifikasi dengan assembler lain. Lampiran A menjelaskan assembler Microsoft dan menyediakan detailnya pada program linker dan Programmer’s WorkBench.] NEXT

Usai memelajari bab ini, Anda akan mampu untuk : TUJUAN BAB Usai memelajari bab ini, Anda akan mampu untuk : 1. Menjelaskan operasi setiap instruksi perpindahan data dengan mode pengalamatan yang dapat diaplikasikan. 2. Menjelaskan manfaat bahasa assembly pseudo-operations dan kata kunci seperti ALIGN, ASSUME, DB, DD, DW, END, ENDS, EQU, MODEL, OFFSET, ORG, PROC, PTR, SEGMENT, USE32, dan USES. 3. Memilih instruksi bahasa assembly yang sesuai untuk menyelesaikan tugas perpindahan data yang spesifik. 4. Menentukan opcode simbolik, sumber, tujuan, dan mode pengalamatan untuk instruksi bahasa mesin heksadesimal. 5. Menggunakan assembler untuk mengatur segmen data, segmen stack, dan segmen kode. 6. Memperlihatkan cara mengatur prosedur dengan menggunakan PROC dan ENDP. 7. Menjelaskan perbedaan antara model memori dan definisi segmen-penuh (full- segment) untuk assembler MASM. NEXT

TINJAUAN ULANG MOV Instruksi MOV, seperti yang telah dijelaskan dalam Bab 3, menjelaskan keragaman mode pengamatan 8086-Pentium 4. Pada bab ini, instruksi MOV memperkenalkan instruksi bahasa mesin yang terdapat dalam berbagai mode pengalamatan dan instruksi. Kode mesin turut diperkenalkan karena kadangkala memang dibutuhkan untuk menginterpretasikan program bahasa mesin yang dihasilkan oleh assembler. Interpretasi bahasa asli mesin (bahasa mesin) dapat menyebabkan debugging atau modifikasi pada level bahasa mesin. Terkadang, tambahan bahasa mesin dibuat dengan menggunakan program DEBUG yang tersedia dalam DOS, yang membutuahkan pengetahuan tertentu mengenai bahasa mesin. Konversi antara instruksi bahasa mesin dan assembly diilustrasikan dalam Lampiran B. NEXT

NEXT

PUSH/POP Intruksi PUSH dan POP merupakan intruksi penting untuk menyimpan dan mengambil kembali data dari memori stack secara LIFO (last-in, first-out). Mikroprosesor mempunyai enam bentuk intruksi PUSH dan POP, yaitu register, memori, immediate, register segmen, flag, dan semua register. Bentuk PUSH dan POP immediate serta PUSHA dan POPA (semua register) tidak terdapat pada mikroposesor 8086/8088 awal, dan hanya terdapat pada 80286 sampai Pentium 4. Pengalaman register memungkinkan isi register 16-bit ditransfer dari atau ke dalam stack. Pada 80386 ke atas, extended register 32-bit dan flag (EFLAGS) dapat juga dimasukan (push) dan dikeluarkan (pop) dari stack. Intruksi pengalamatan memori PUSH dan POP menyimpan isi lokasi memori 16-bit (atau 32-bit pada 80386 ke atas) dalam stack atau data stack ke dalam suatu lokasi memori. Pengalamatan immediate memungkinkan data immediate dimasukkan ke dalam stack, tetapi tidak dapat dikeluarkan dari stack. Pengalamatan register segmen memungkinkan isi setiap register segmen dimasukkan ke dalam stack atau dikeluarkan dari stack (CS dapat dimasukkan, tetapi data dari stack tidak pernah bisa dikeluarkan ke CS). Flag juga dapat dimasukkan dan dikeluarkan dari stack, demikian juga isi semua register. NEXT

NEXT

TABEL 4-7 Instruksi PUSH Simbol Contoh Catatan PUSH reg 16 PUSH BX Register 16-bit PUSH reg 32 PUSH EDX Register 32-bit PUSH mem 16 PUSH WORD PTR (BX) Pointer 16-bit PUSH mem 32 PUSH WORD PTR (EBX) Pointer 32-bit PUSH seg PUSH DS Register segmen PUSH imm 8 PUSH ‘,‘ immediate 8-bit PUSH imm 16 PUSHW 1000H immediate 16-bit PUSH imm 32 PUSHD 20 immediate 32-bit PUSHA PUSHA Menyimpan semua register 16-bit PUSHAD PUSHAD Menyimpan semua register 32-bit PUSHF PUSHF Menyimpan flag PUSHFD PUSHFD Menyimpan EFLAG NEXT

PENGISIAN ALAMAT EFKTIF Terdapat beberapa instruksi pengisian alamat efektif dalam set instruksi mikroprosesor. Instruksi LEA mengisi register 16-bit dengan lamat, seperti yang ditentukan oleh mode pengalamatan yang dipilih untuk instruksi. Variasi LDS dan LES mengisi setiap register 16-bit dengan alamat offset yang diperoleh dari suatu lokasi memori. Pada 80386 ke atas, LFS, LGS, dan LSS ditambahkan ke set instruksi, dan register 32-bit dapat dipilih untuk menerima offset 32-bit dari memori. Tabel 4-9 berisi daftar instruksi pengisian alamat efektif. NEXT

NEXT

CONTOH 4-4 .MODEL SMALL : select SMALL model .386 ; select 80386 0000 .DATA ; start of DATA segment 0000 00000000 SADDR DD 7 ; old stack address 0004 1000 [ SAREA DW 1OO0H DUP (?) ; new stack area 0000 ] 2004 = 2004 STOP EOU THIS WORD ; define to of new stack 000O .CODE ; start of CODE segment .STARTUP ; start of program 0010 FA CLI ; disable interrupt OO11 8B C4 MOV AX,SP ; save old SP OO13 A3 0000 R MOV WORD PTR SADDR,AX OO16 8C DO MOV AX,SS ; save old SS 0018 A3 0002 R MOV WORD PTR SADDR+2.AX O01B 8C D8 MOV AX.DS ; load new SS 00ID 8E DO MOV SS.AX OQ1F B8 2004 R MOV AX,OFFSET STOP ; load new SP 0022 8B EO MOV SP,AX 0024 FB STI ; enable interrupt 0025 8B CO MOV AX,AX ; do dummy instructions 0027 8B CO MOV AX,AX 0029 OF B2 26 0000 R LSS SP,SADDR ; load old SS and SP .EXIT ; exit to DOS END ; end of file NEXT

PERPINDAHAN DATA STRING Terdapat Lima instruksi transfer data string: LCDS, STOS, MOVS, INS, dan OUTS. Setiap instruksi string memungkinkan transfer data berupa byte, word, atau doubleword (atau jika diulang, satu blok byte, word, atau doubleword). Sebelum instruksi string dijelaskan, operasi bit flag D (direction), DL, dan SI harus dipahami terlebih dahulu sebagaimana penggunaan flag tersebut dalam instruksi string. NEXT

TABEL4-10 Bentuk instruksi LODS. Bahasa Assembly Operasi LODSB AL = DS:[SI]; SI = SI ± 1 LODSW AX = DS:[SI]; SI = SI ± 2 LODSD EAX = DS:[SI]; SI = SI ± 4 LODS LIST AL = DS:[SI]; SI = SI ± 1 [jika LIST adalah sebuah byte] LODS DATA1 AX = DS:[SIJ; SI = SI ± 2 [jika DATA adalah sebuah word] LODS FROG EAX = DS:[SIJ; SI = SI ± 4 [jika FROG adalah sebuah doubleword] Catatan: segmen dapat di-override dengan segment override prefix seperti pada LODS ES:DATA4. NEXT

GAMBAR 4-16 Operasi instruksi LODSW jika DS = 1000H, D = 0, 11000H = 32, dan 11001H = AO. Instruksi ini diperlihatkan setelah AX diisi dari memori, tetapi sebalum SI dinaikan 2. NEXT

  Soal Gambarkan instruksi MOV WORD PTR [BX + 1000H], 1234H yang dikonversi ke dalam bahasa mesin biner! Buatlah tabel dari instruksi PUSH! Gambarkan operasi instruksi LODSW jika DS = 1000H, D = 0, 11000H = 32, dan 11001H = AO.   NEXT

TUTUP Terima Kasih