1 / 12

Operasi String

Operasi String. String. Tipe data yang berisi kumpulan karakter, simbol, angka Array of char Register : SI (Source Index) : mencatat alamat dari string sumber yang akan dimanipulasi DI (Destination Index) : mencatat alamat hasil manipulasi Menggunakan indexing addressing mode.

afi
Télécharger la présentation

Operasi 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 String

  2. String • Tipe data yang berisi kumpulan karakter, simbol, angka • Array of char • Register : • SI (Source Index) : mencatat alamat dari string sumber yang akan dimanipulasi • DI (Destination Index) : mencatat alamat hasil manipulasi • Menggunakan indexing addressing mode

  3. Operasi String • Flag direction : • CLD, STD • Perpindahan : • MOVS, LODS, STOS • Perbandingan : • CMPS • Perulangan : • REP • Pencarian : • SCAS

  4. Direction Flag • CLD : • Clear direction flag • Flag : DF • Membuat direction flag berisi 0. Bila direction flag berisi 0 maka pembacaan string akan berlangsung dari memory rendah ke tinggi. • Sebaliknya bila direction flag bernilai 1 maka string akan diproses dari memory tinggi ke rendah.

  5. Direction Flag • STD : • Set direction flag • Flag : DF • Untuk menjadikan Direction flag menjadi 1. Intruksi ini merupakan kebalikan dari intruksi CLD • Arah pembacaan dari alamat memory tinggi ke rendah

  6. Perpindahan • MOVS : • Memindahkan string dari DS:SI ke ES:DI • Register SI dan DI akan bertambah atau berkurang tergantung dari DF • Perpindahan bisa dilakukan per byte, per word, atau per double word • Sintak : • MOVS Tujuan, Asal • Tujuan dan Asal bertipe byte => MOVS menjadi MOVSB • Tujuan dan Asal bertipe word => MOVS menjadi MOVSW • Tujuan dan Asal bertipe double word => MOVS menjadi MOVSD

  7. Perpindahan • LODS : • Mengambil string dari DS:[SI] menuju ke AL, AX, atau EAX • Akan diterjemahkan ke 3 bentuk : • LODSB : DS:[SI] ke AL • LODSW : DS:[SI] ke AX • LODSD : DS:[SI] ke EAX

  8. Perpindahan • STOS : • Mengisi string dari AL, AX, EAX ke ES:[DI] • Akan diterjemahkan ke 3 bentuk : • STOSB : AL ke ES:[DI] • STOSW : AX ke ES:[DI] • STOSD : EAX ke ES:[DI] • Arah penyimpanan bergantung DF

  9. Perbandingan • CMPS : • Membandingkan data string pada DS:[SI] dan ES:[DI] secara per byte, per word, ataupun per double word • Flag : OF, SF, ZF, AF, PF, CF • Sintak : CMPS • Akan diubah ke CMPSB, CMPSW, dan CMPSD • Arah perbandingan tergantung DF • Biasanya mengikuti REP

  10. Perulangan • Tipe : • Tak Bersyarat : REP • Bersyarat : REPE, REPZ, REPNE, REPNZ • REP : • Mengulang suatu perintah selama CX<>0 • Tidak ada flag terpengaruh • REPE : • Mengulang suatu perintah selama CX<>0 atau jika ada karakter yang beda (ZF=0)

  11. Perulangan • REPZ : • Sama dengan REPE • REPNE : • Mengulang suatu perintah sampai dengan CX=0 atau ada karakter yang sama (ZF = 1) • REPNZ : • Sama dengan REPNE

  12. Pencarian • SCANS : • Membandingkan data pada AL, AX, atau EAX dengan data pada ES:DI • Sintak : • SCANS Operand • Flag : OF, SF, ZF, AF, PF, CF • Mengikuti instruksi perulangan bersyarat • Akan diubah ke SCASB, SCASW, atau SCASD sehingga tidak perlu operand

More Related