Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
15Activity
0 of .
Results for:
No results containing your search query
P. 1
Modul 10

Modul 10

Ratings: (0)|Views: 331 |Likes:
Published by Suhadi Sahru

More info:

Published by: Suhadi Sahru on Oct 22, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

11/20/2012

pdf

text

original

 
MATA KULIAH : BAHASA RAKITANMateri ke-10BAB XIXOPERASI PADA STRING19.1. INTRUKSI PADA STRING
 Apa itu string ? String adalah suatu jenis data yang terdiri atas kumpulankarakter, angka, maupun simbol. Pada operasi string register SI dan DImemegang suatu peranan yang khusus. Register SI(Source Index) digunakanuntuk mencatat alamat dari sumber string yang akan dimanipulasi sedangkanregister DI(Destination Index) digunakan untuk mencatat alamat atau tempathasil dari manipulasi string. Operasi pada string secara lengkap bisa anda lihatpada tabel 19.1.
+-------------------------------------------------------------+| INTRUKSI ARTI |+-------------------------------------------------------------+| CLD Clear Direction Flag || STD Set Direction 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 To AL || LODSW Load String 1 Word To AX || 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 > || || 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> |+-------------------------------------------------------------+Gambar 19.1. Perintah Untuk Operasi String
 
19.2. PENGCOPYAN DAN ARAH PROSES OPERASI STRING
 Sama halnya dengan perintah MOV, pada string digunakan perintah MOVS(MoveString) untuk mengcopy data dari DS:SI menuju ES:DI. Pasangan DS:SI mencatatalamat dari sumber string sedangkan ES:DI mencatat alamat hasil dari operasistring.Setiap kali terjadi operasi string(MOVS) maka register SI dan DI akan berkurangatau bertambah sesuai dengan direction flag. Anda bisa menaikkan nilai SI danDI pada setiap proses dengan perintah CLD(Clear Direction Flag) dan STD(SetDirection Flag) untuk menurunkan nilai SI dan DI pada setiap proses. Pada saatprogram dijalankan, secara otomatis direction flag akan menunjuk pada prosesmenaik.
;/========================================\;; PROGRAM : STRING1.ASM ;; AUTHOR : S’to ;;\========================================/;.MODEL SMALL.CODEORG 100hTData : JMP ProsesKalimat DB 'Donald Duck$' ; 12 karakterBuffer DB 12 DUP(?)Proses:LEA SI,Kalimat ; SI = sumberLEA DI,Buffer ; DI = tujuanCLD ; Arah proses menaik MOV CX,18 ; Banyaknya pengulanganUlang :MOVS ES:Buffer,Kalimat ; Pindahkan data pada
 
LOOP Ulang ; DS:SI ke ES:DIMOV AH,09 ;LEA DX,Buffer ;INT 21h ; Cetak data pada bufferINT 20hEND TDataProgram 19.1. Penggunaan perintah MOVS
 Pada program 19.1. dapat anda lihat bagaimana proses pengcopyan data'Kalimat' ke 'buffer'. Bila program 19.1. dijalankan maka dilayar akanditampilkan:
Donald Duck 
 Hasil yang tercetak merupakan data pada buffer yang diambil pada variabel'kalimat'. Perintah CLD digunakan untuk memastikan supaya arah prosesmenaik(SI dan DI ditambah setiap kali operasi).
(STD)Menurun <--- DS:SI ---> Menaik(CLD)_+---+---+---+---+---+---+---+---+---+---+---+| D | o | n | a | l | d | | D | u | c | k |+---+---+---+---+---+---+---+---+---+---+---+Offset: 103 104 105 106 107 108 109 200 201 202 203
Karena sumber(kalimat) dan tujuan(buffer) pada program 19.1. digunakan tipedata byte(DB) maka oleh assembler perintah MOVS akan dijadikan
MOVSB
(Move string byte), sehingga register SI dan DI setiap kali proses akanditambah dengan 1. Bila sumber dan tujuan didefinisikan dengan DW, makaassembler akan menjadikannya
MOVSW
(Move string word), dan setiap kalioperasi SI dan DI akan ditambah dengan 2.Selain dengan perintah MOVS, anda bisa juga langsung menggunakan perintahMOVSB atau MOVSW. Mungkin ada yang bertanya-tanya, mengapa kita harusmenggunakan MOVSB atau MOVSW, jika dengan perintah MOVS assembler akanmerubahnya secara otomatis. Bila anda menggunakan perintah MOVSB atauMOVSW secara langsung maka hal ini akan membantu assembler karena ia tidakperlu lagi menterjemahkannya, selain itu program akan lebih efisien.Intruksi MOVSB dan MOVSW tidak memerlukan operand, oleh karena itu bilapada program 19.1. ingin anda rubah dengan MOVSB, maka pada perintah:MOVS ES:Buffer,KalimatBisa anda ganti menjadi:MOVSB
19.3. PENGULANGAN PADA STRING
 Pada program 19.1. kita masih menggunakan pengulangan yang primitif.Sebenarnya untuk operasi string ini assembler telah menyediakan beberapapengulangan khusus, yaitu:

Activity (15)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Videl Tielovers liked this
Duddy Soegiarto liked this
rwiee liked this
Ayna Nasythaa liked this
Rizky Wp liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->