1 / 9

OPERASI PADA STRING

OPERASI PADA STRING. 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.

aurek
Download Presentation

OPERASI PADA STRING

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OPERASI PADA STRING

  2. 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

  3. Instruksi-instruksi String

  4. 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 MOV AH,09 LEA DX,Buffer INT 21h ; Cetak data pada buffer INT 20H END DATA

  5. 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:BUF,KAL ; BLH DITULIS MOVSB MOV AH,09 LEA DX,Buffer INT 21h ; Cetak data pada buffer INT 20H END DATA

  6. 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’ 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

  7. 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

  8. 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

More Related