1 IKI10230 Pengantar Organisasi Komputer Kuliah no. 07: Tugas No. 2 Sumber: 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization, ed-5 3. Materi kuliah CS61C/2000 & CS152/1997, UCB 4. Intel Architecture Software Developer’s Manual 31 Maret 2004 L. Yohanes Stefanus Bobby Nazief bahan kuliah:
2 Tugas Pemrograman #2: Dictionary Lookup *char dict[ ] = { “herman”, “dina”, “maman”,..., null_entry }; int dict_lookup(char *key) { key = read_string(); for (i = 0; dict[i] != null_entry; i++) { if (key == dict[i]) printf (“found!\n”); } printf(“not found!\n”); } °dict disimpan di memori °jumlah karakter maksimum untuk sebuah entri = 8, termasuk terminal °definisikan null_entry (misal: null_entry = 0) °jumlah entri maksimum = 3 °key diberikan oleh pengguna (gunakan fungsi read_char) °kata adalah kumpulan karakter yang diakhiri karakter terminal (0)
3 Alokasi Memori untuk char *dict[ ] °1 kata ≤ 8 karakter ASCII, termasuk ‘terminal’ (0) °1 karakter ASCII butuh 1 byte lokasi memori ‘h’ ‘e’ ‘r’ ‘m’ ‘a’ ‘n’ ‘d’ ‘i’ A‘n’ B‘a’ C D E F ‘m’ ‘a’ dict
4 Read String (membaca sebuah kata dari keyboard) %include "asm_io.inc" segment.bss key resb 8 segment.text global _asm_main _asm_main:... mov edi,key; edi points to key, storage of the input string mov ecx,7; limit input string to 7 characters L11: call read_char; the input character will be stored in reg. al cmp al,10; is it newline? je L12; if yes, we are done mov [edi],al; store the input string in key in [edi] inc edi loop L11 L12: mov byte [edi],0; a string is terminated by 0...
5 SELAMAT BEKERJA!