Скачать презентацию INSTRUKSI PERPINDAHAN DATA MISCELLANEOUS Tak perlu bingung dengan Скачать презентацию INSTRUKSI PERPINDAHAN DATA MISCELLANEOUS Tak perlu bingung dengan

68980a031ecbaaaafa4f3b03a4ea7fdf.ppt

  • Количество слайдов: 13

INSTRUKSI PERPINDAHAN DATA MISCELLANEOUS Tak perlu bingung dengan istilah miscellaneous : instruksi ini digunakan INSTRUKSI PERPINDAHAN DATA MISCELLANEOUS Tak perlu bingung dengan istilah miscellaneous : instruksi ini digunakan dalam program. Instiuksi transfer data yang dijelaskan pada bagian ini adalah XCHG, LAHF, SAHF, XLAT, IN, OUT, BSWAP, MOVSX, MOVZX, dan CMOV. Karena tidak digunakan sesering instruksi MOV, instruksi miscellaneous ini dikelompokkan tersendiri dan dijelaskan pada bagian ini. NEXT

XCHG Instruksi XCHG (exchange) menukar isi suatu register dengan isi register atau lokasi memori XCHG Instruksi XCHG (exchange) menukar isi suatu register dengan isi register atau lokasi memori yang lain. Instruksi XCHG tidak dapat menukar register segmen atau memori-kememori data. Pertukaran ini dapat berukuran byte, word, atau doubleword (80386 ke atas), dan dapat menggunakan setiap mode pengalamatan seperti yang didiskusikan pada Bab 3, kecuali pengalamatan immediate. Tabel 4 -16 mernperlihatkan beberapa contoh instruksi XCHG. LAHF dan SAHF Instruksi LAHF dan SAHF jarang digunakan karena instruksi tersebut dirancang sebagai instruksi penghubung. Instruksi ini memungkinkan perangkat lunak 8085 (mikroprosesor 8 -bit awal) diterjemahkan ke dalam perangkat lunak 8086 dengan menggunakan sebuah program penerjemah. Karena perangkat lunak yang membutuhkan terjemahan telah berakhir beberapa tahun yang lalu, instruksi tersebut hanya mempunyai sedikit aplikasi saat ini. Instruksi LAHF mentransfer delapan bit paling kanan register flag ke dalam register AH. Instruksi SAHF mentransfer register AH ke dalam delapan bit paling kanan register flag. NEXT

XLAT Instruksi XLAT (translate) mengubah isi register AL ke dalam suatu bilangan yang disimpan XLAT Instruksi XLAT (translate) mengubah isi register AL ke dalam suatu bilangan yang disimpan dalam suatu label memori. Instruksi ini melakukan teknik lookup tabel langsung yang sering digunakan untuk mengonversi satu kode ke kode yang lain. Instruksi XLAT pertama kali menjumlahkan isi AL dengan BL untuk membentuk suatu alamat memori yang terletak dalam segmen data. Instruksi ini kemudian menyalin isi alamat tersebut ke dalam AL. Instruksi ini merupakan satu-satunya instruksi yang menjumlahkan bilangan 8 -bit dengan bilangan 16 -bit. IN dan OUT Tabel 4 -17 merupakan daftar bentuk instruksi IN dan OUT yang menjalankan operasi I/O. Perhatikan bahwa isi AL, AX, atau EAX hanya ditransfer antara peranti I/O dan mikroprosesor. Instruksi IN mentransfer data dan peranti I/O eksternal ke AL, AX, atau EAX; instruksi OUT mentransfer data dan AL, AX, atau EAX ke peranti I/O eksternal, (Perhatikan, hanya versi 80386 ke atas yang memunyai EAX). MOVSX dan MOVZX Instruksi MOVSX (move and sign extended) dan MOVZX (move and zero-extend) terdapat dalam set instruksi 80386 -Pentium 4. Instruksi ini memindahkan data, dan pada waktu yang bersamaan menambahkan tanda atau not pada data tersebut. Tabel 4 -18 mengilustrasikan instruksi ini dengan beberapa contoh pada masing instruksi mi. NEXT

BSWAP Instruksi BSWAP (byte swap) hanya terdapat pada 80486 dan semua versi mikroprosesor Pentium. BSWAP Instruksi BSWAP (byte swap) hanya terdapat pada 80486 dan semua versi mikroprosesor Pentium. Instruksi ini mengambil isi register 32 -bit dan menukar byte pertama dengan keempat, dan byte kedua dengan ketiga. Sebagai contoh, instruksi BSWAP EAX dengan isi EAX = 001 12233 H menukar byte dalam EAX, sehingga EAX = 33221 100 H. Perhatikan bahwa urutan keempat byte tersebut dibalik dengan instruksi 1. lnstruksi in digunakan untuk mengubah data dan bentuk big endian ke bentuk little endian, dan sebaliknya. CMOV Kelas instruksi CMOV (conditional move) merupakan instruksi baru pada set instruksi Pentium Pro dan Pentium II. Terdapat beberapa variasi dan instruksi CMOV. Tabel 4 -19 memuat daftar variasi instruksi CMOV. Instruksi ini memindahkan data hanya jika kondisinya terpenuhi (true). Sebagai contoh, instruksi CMOVZ memindahkan data hanya jika hasil dan beberapa instruksi sebelumnya bernilai nol Register tujuan dibatasi hanya pada register 16 -bit atau 32 -bit, tetapi register asal dapat berupa register 16 -bit atau 32 -bit, atau lokasi memori. NEXT

GAMBAR 4 -18 Sinyal-sinyal yang terdapat pada sistem berbasis mikroprosessor pada instruksi OUT 19 GAMBAR 4 -18 Sinyal-sinyal yang terdapat pada sistem berbasis mikroprosessor pada instruksi OUT 19 H, AX. NEXT

TABEL 4 -19 Instruksi perpindahan bersyarat Bahasa Assembly Kondisi yang dites Operasi CMOVB CMOVAE TABEL 4 -19 Instruksi perpindahan bersyarat Bahasa Assembly Kondisi yang dites Operasi CMOVB CMOVAE CMOVBE CMOVA CMOVE atau CMOVZ CMOVNE atau MOVNZ C = 1 C = 0 Z = 1 atau C =0 Z =0 dan C =0 Z = 1 Z =0 CMOVLE CMOVGE CMOVS CMOVNS CMOVC CMOVNC CMOVO CMOVNO CMOVP atau CMOVPE S<>O Z = 1 atau S = 0 Z =0 dan S = 0 S = 1 S = 0 C = 1 C =0 0= 1 0=0 P = 1 CMOVNP atau CMOVPO P =0 Memindahkan jika di bawah Memindahkan jika di atas Memindahkan jika di bawah atau sama Memindahkan jika di atas Memindahkan jika sama atau lakukan set jika nol Memindahkan jika tidak sama atau takukan set jika tidak nol Memindahkan jika lebih kecil atau sama Memindahkan jika Iebih besar Memindahkan jika lebih besar atau sama Memindahkan jika ada sign (negatif) Memindahkan jika tak ada srgn (positif) Memindahkan jika carry Memindahkan jika tak ada carry Mpmindahkan Jika overflow M~mindahkan jika tak ada overflow Meniindahkan jika ada paritas atau lakukan set jika paritas genap Memindahkan jika tak ada paritas atau lakukan set jika angka paritas ganjil NEXT

SEGMENT OVERRIDE PREFIX Segment override prefix, yang dapat ditambahkan di hampir semua instruksi pada SEGMENT OVERRIDE PREFIX Segment override prefix, yang dapat ditambahkan di hampir semua instruksi pada berbagai mode pengalamatan memori, membuka peluang bagi programer untuk berpindah dan segmen default. Segment override prefix merupakan byte tambahan yang melampiri bagian depan instruksi untuk memilih suatu register segmen altematif. Instruksi yang tidak bisa diawali (diberi prefiks) adalah instruksi jump dan call yang harus menggunakan register segmen kode untuk pembuatan alamat. Segment override juga digunakan untuk memilih segmen FS dan GS pada mikroprosesor 80386 sampai Pentium 4. NEXT

TABEL 4 -20 Instruksi yang termasuk segment override prefix Bahasa Assembly MOV AX, DS: TABEL 4 -20 Instruksi yang termasuk segment override prefix Bahasa Assembly MOV AX, DS: [BP] MOV AX, ES: [BP) MOV AX, SS: [DI] MOV AX, CS: LIST MOV AX, ES: [SI] LODS ES: DATA 1 MOV EAX, FS: DATA 2 MOV BLGS: [ECX] Segmen yang Diakses Data Ekstra Stack Kode Ekstra Data Segmen Default Stack Data Ekstra FS GS NEXT

DETAIL ASSEMBLER Assembler untuk mikroprosesor dapat digunakan dengan dua cara: (1) dengan model yang DETAIL ASSEMBLER Assembler untuk mikroprosesor dapat digunakan dengan dua cara: (1) dengan model yang unik untuk assembler tertentu, dan (2) dengan definisi segmen-penuh (full-segmen definitions) yang memungkinkan pengaturan menyeluruh terhadap proses assembly dan bersifat universal untuk semua assembler. Bagian teks ini mempresentasikan kedua metode 1111, dan menjelaskan bagaimana mengatur ruang memori program dengan menggunakan assembler. Bagian ini juga menerangkan tujuan dan manfaat beberapa direktif penting yang digunakan assembler tersebut. Lampiran A menyediakan penjelasan tambahan mengenai assembler. NEXT

Program Sampel Contoh 4 -20 menunjukkan sebuah program sampel, menggunakan definisi segmen-penuh, yang membaca Program Sampel Contoh 4 -20 menunjukkan sebuah program sampel, menggunakan definisi segmen-penuh, yang membaca karakter dari keyboard dan menampilkannya pada layar CRT. Meskipun tidak begitu penting, program ini mengilustrasikan sebuah program yang dapat dikerjakan secara penuh yang berfungsi pada komputer yang menggunakan DOS, dari yang paling awal yaitu sistem berbasis 8088 hingga sistem berbasis Pentium 4 terakhir. Program inijuga mengilustrasikan penggunaan beberapa fungsi panggilan DOS. (Lampiran A berisi daftar fungsi panggilan DOS beserta parameternya). Fungsi panggilan BIOS memungkinkan penggunaan keyboard, printer, disk drive dan perangkat lain yang terdapat pada sistem komputer Anda. NEXT

CONTOH 4 -20 ; An example program that reads a key and displays it. CONTOH 4 -20 ; An example program that reads a key and displays it. ; Note that an @ key ends the program. ; 0000 CODE_SEG SEGMEN 'CODE' ASSUME CS: CODE_SEG 0000 MAIN PROC FAR 0000 B 4 06 mov AH, 6 0002 B 2 FF MOV DL, OFPH 0004 CD 21 INT 21 H 0006 74 F 8 JE MAIN 0008 3 C 40 Cmp AL, , @, OOOA 74 08 JE MAIN 1 OOOC B 4 06 M 0 V AH, 6 OOOE BA DO MOV DL, AL 0010 CD 21 INT 21 H 0012 EB EC JMP MAIN 0014 MAIN 1: 0014 B 4 4 C MOV AH, 4 CH 0016 CD 21 INT 21 H 0018 MAIN ENDP 0018 CODE_SEG ENDS END MAIN ; readkey ; if no key ; test for @ ; if @ ; display key ; repeat ; exit to DOS NEXT

Soal 1. Apa yang dimaksud dengan instruksi perpindahan data, XCHG, LAHF dan SAHF, XLAT, Soal 1. Apa yang dimaksud dengan instruksi perpindahan data, XCHG, LAHF dan SAHF, XLAT, IN dan OUT, MOVSX dan MOVZX, BSWAP serta CMOV! 2. Gambarkan sinyal-sinyal yang terdapat pada sistem berbasis mikroprosesor pada instruksi OUT 19 H, AX! 3. Buatlah tabel instruksi yang termasuk segment override prefix! 4. Buatlah contoh untuk menunjukkan sebuah program sampel, menggunakan definisi segmen-penuh, yang membaca karakter dari keyboard dan menampilkannya pada layar CRT! NEXT

TUTUP Terima Kasih TUTUP Terima Kasih