OPERASI PADA STRING Instruksi Pada String

Slides:



Advertisements
Presentasi serupa
JWASM Input Keyboard.
Advertisements

Flags.
PERTEMUAN KE 5 OPERASI LOMPAT/JUMP.
OPERASI ARITMATIKA OPERASI PENAMBAHAN 1. ADD
Praktikum Organisasi Komputer (Bahasa Assembly)
BAB IV MODE PENGALAMATAN
Tipe-Tipe Instruksi MCS-51 (Arithmatika)
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
Procedure. Procedure???? Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure, suatu program yang besar dapat disusun secara terstruktur.
JWASM Macro.
Turbo Assembly Membuat Program .EXE.
Turbo Assembly Mencetak Kalimat.
Turbo Assembly Compare and Jump.
Turbo Assembly Masukan dari Keyboard.
SISTEM BILANGAN DAN REGISTER
REGISTER Oleh : Oman Somantri, S.Kom
Struktur Register dan Metode Pengalamatan Memori
© 2009 Fakultas Teknologi Informasi Universitas Budi Luhur Jl. Ciledug Raya Petukangan Utara Jakarta Selatan Website:
Pemrograman Mikroprosesor
Instruksi Logika Dasar
ADDRESSING MODES Penjelasan dan program lihat pada Pemograman Bahasa Assembly (Ilmu Komputer)
Procedure. Procedure???? Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar bisa diselesaikan dengan.
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
BAHASA RAKITAN BAGIAN 3.
Johannes Simatupang, MKom, Cobit5-F NIDN :
REGISTER.
POINTER & MANIPULASI BIT DAN LOGIKA
Mode Pengalamatan.
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
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.
Program Bahasa Rakitan dengan DEBUG.COM
Instruksi Perpindahan Data
Arsitektur Perangkat Lunak 8086
Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar dapat diselesaikan dengan lebih mudah. Proses pencarian.
Pada AT89S51, ada 6 sumber interrupt yaitu 1. System reset 2 Pada AT89S51, ada 6 sumber interrupt yaitu 1. System reset 2. External 0 3. Timer 0 4.
lnstruksi Aritmetika dan Logika
BAHASA RAKITAN BAGIAN 1.
PENDAHULUAN Pembuatan perangkat lunak yang efisien untuk mikroprosesor membutuhkan pengenalan yang menyeluruh mengenai mode pengalamatan yang digunakan.
Praktikum 6.
INSTRUKSI LOGIKA DASAR
Arsitektur Mikroprosessor 8086
Register.
Pertemuan 8 Instruksi Bahasa Rakitan 8088
Pertemuan 7 Instruksi Bahasa Rakitan 8088
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Jenis - Jenis Register dan Fungsinya Mikroprosesor 8086/8088 memiliki 4 register yang masing-masingnya terdiri dari 16 bit, ditambah 9 register flag. Tiga.
Pengenalan Assembler.
Program Bahasa Rakitan dengan DEBUG.COM
VARIABEL DAN JENISNYA A. Ridwan Siregar.
BIOS, DOS, dan String.
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
Struktur Register Mikroprosesor 8086
Struktur Register dan Metode Pengalamatan
Operasi String.
Instruksi Perpindahan Data Miscellaneous
REGISTER.
Sistem Bilangan & REGISTER
NILAI DAN EKSPRESI (TRANSFORMASI NILAI), TIPE DATA DAN TIPE OPERATOR
Pengenalan Assembler.
BAB III REGISTER 8088 Mikroprosesor 8088 berorientasi pada register
OPERASI PADA STRING.
Mode Pengalamatan.
BAHASA RAKITAN BAGIAN 1.
OPERASI LOGIKA Mulyono.
Struktur Register dan Metode Pengalamatan Memori
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
CHAP 6 SET INSTRUKSI MEMORI
Transcript presentasi:

OPERASI PADA STRING Instruksi Pada String String adalah suatu jenis data yang terdiri atas kumpulan karakter, angka maupun simbol. Register yang digunakan dalam operasi string ini adalah register SI dan DI. Register SI (Source Index) digunakan untuk mencatat alamat dari sumber string yang akan dimanipulasi. Register DI (Destination Index) mencatat alamat atau tempat hasil dari manipulasi string

Instruksi-instruksi String Arti CLD Clear Direction Flag STD Set Destination Flag CMPS Compare String CMPSB Compare String 1 Byte CMPSW Compare String 1 Word CMPSD Compare String 1 Double Word (80386&80486) LODS Load String LODSB Load String 1 Byte LODSW Load String 1 Word LODSD Load String 1 Double Word to EAX (80386&80486) MOVS Move String MOVSB Move String 1 Byte MOVSW Move String 1 Word MOVSD Move String 1 Double Word (80386&80486)

Instruksi Arti REP Repeat REPE Repeat If Equal REPZ Repeat If Zero REPNE Repeat If Not Equal REPNZ Repeat If Not Zero SCAS Scan String SCASB Scan String 1 Byte SCASW Scan String 1 Word SCASD Scan String 1 Double Word (80386&80486) STOS Store String STOSB Store AL at ES:DI String STOSW Store AX at ES:DI String STOSD Store EAX at ES:DI String (80386&80486)

Pencopian dan Arah Proses Operasi String CLD (Clear Direction Flag) berfungsi untuk menaikkan nilai SI dan DI (arah proses menaik) STD (Set Direction Flag) berfungsi untuk menurunkan nilai SI dan DI (arah proses menurun) .MODEL SMALL .CODE ORG 100H DATA: JMP MULAI KAL DB ‘STMIK$’ BUF DB 5 DUP(?) MULAI: LEA SI,KAL LEA DI,BUF CLD MOV CX,5 ULANG: MOVS ES:BUFFER,KALIMAT ; BOLEH DITULIS MOVSB LOOP ULANG INT 20H END DATA

Pengulangan Pada String Selain menggunakan pengulangan yang biasa digunakan bisa juga digunakan pengulangan bersyarat seperti REP, REPE, REPZ dll. .MODEL SMALL .CODE ORG 100H DATA: JMP MULAI KAL DB ‘STMIK$’ BUF DB 5 DUP(?) MULAI: LEA SI,KAL LEA DI,BUF CLD MOV CX,5 REP MOVS ES:BUFFER,KALIMAT ; BLH DITULIS MOVSB INT 20H END DATA

Perbandingan Pada String Pada dasarnya perbandingan string sama dengan pencopian string. Pada perbandingan string juga terdapat bentuk CMPS yang dapat berupa CMPSB (perbandingan byte), CMPSW (perbandingan word) dan CMPSD (perbandingan double word). CETAK MACRO KAL MOV AH,09H LEA DX,KAL INT 21H ENDM .MODEL SMALL .CODE ORG 100H DATA: JMP MULAI KAL1 DB ‘akakjdjajdbk’ PESAN1 DB ‘Kedua kalimat sama$’ PESAN2 DB ‘Kedua kalimat tidak sama$’ MULAI: LEA SI,KAL1 LEA DI,KAL2 CLD MOV CX,12 ULANG: REP CMPSB JNZ TDKSAMA CETAK PESAN1 JMP EXIT TDKSAMA: CETAK PESAN2 EXIT: INT 20H END DATA

Operasi Scan Pada String Operasi scan pada string digunakan untuk membandingkan nilai pada register AL, AX atau EAX (80386) dengan data pada ES:DI. CETAK MACRO KAL MOV AH,09H LEA DX,KAL INT 21H ENDM .MODEL SMALL .CODE ORG 100H DATA: JMP MULAI CARI DB ‘akakkasdjadkdjfjdjajdbk’ PESAN1 DB ‘Karakter ‘’s’’ yang dicari ketemu! $’ PESAN2 DB ‘Karakter ‘’s’’ yang dicari tidak ketemu! $’ MULAI: LEA DI,CARI MOV AL,’s’ MOV CX,23 REPNE SCASB JNZ TDK_KETEMU CETAK PESAN1 JMP EXIT TDK_KETEMU:CETAK PESAN2 EXIT: INT 20H END DATA

Mengambil dan Mengisi String Operasi mengambil dan mengisi string ada dua operasi yang mempunyai fungsi yang berlawanan. LODS adalah bentuk umum untuk mengambil string dari lokasi memory DS:[SI] menuju AL, AX atau EAX. STOS adalah bentuk umum untuk mengisi string dari AL, AX atau EAX menuju ES:[DI]. Jika Direction Flaf bernilai 0 (dengan CLD) maka setelah instruksi STOS dijalankan register DI akan ditambah secara otomatis, sebaliknya jika Direction Flag bernilai 1 (dengan STD) maka register DI akan dikurang secara otomatis. Keterangan: lihat contoh program pada bagian praktikum operasi string