Tugas lagi nie gan. Sebenernya tugasnya udah dikasih beberapa hari yang lalu. Tapi karena ane udah mulai sibuk dengan urusan pribadi jadinya tugas ini agak terbengkalai. Hehehehe. :D
Tugas yang dikasih dosen ane lebih sedikit daripada tugas yang kemaren. Cuma 2 tugas doanx. Kedengarannya sih gampang ya gan. Tapi isi tugasnya lebih menantang gan. Yang pertama ane disuruh nyari perbedaan antara kode looping yang menggunakan mov cx,15 dengan mov cx,15h. Trus yang kedua anedisuruh buat kode yang hasil outpunya "abcdabcdabcd". Oke, tanpa perlu panjang lebar. Karena panjang kalo ketemu lebar pasti hasilnya luas. Hehehehe :)
Kita bahas tugas yang pertama gan. Tugas yang pertama nyimpulin perbedaan kode looping jika menggunakan mov cx,15 dan mov cx,15h
.model smallOutputnya akan seperti ini
.code
org 100h
mulai :
mov ah,02h
mov dl,65
mov cx,15
ulang :
int 21h
inc dl
loop ulang
int 20h
end mulai
Ini kode looping dengan mov cx,15h
.model smallDan hasilnya seperti ini
.code
org 100h
mulai :
mov ah,02h
mov dl,65
mov cx,15h
ulang :
int 21h
inc dl
loop ulang
int 20h
end mulai
Lho koq bisa beda ya? Ya tentu aja bisa donx gan. Mana ada sich yang nggak bisa? Sini ane jelasin. Pada kode pertama yang kita gunakan yaitu mov cx,15. agan masih inget donx dengan kode tadi? Yap kode ini akan menentukan jumlah looping yang akan dikerjakan. Nah angka 15 ini adalah angka 15 dalam bilangan desimal. Jadi pada kode yang pertama kita melakukan looping sebanyak 15 kali diawali dengan huruf "A" (tanpa kutip) dan mencetak karakter selanjutnya sampai karakter yang ke-15 (karena memakai kode inc dl yang otomatis menambah jumlah bilangan +1 pada registry dl.) sehingga output kode yang pertama adalah "ABCDEFGHIJKLMNO" (tanpa kutip).
Trus untuk kode yang kedua kita gunakan yaitu mov cx,15h. Sebenarnya fungsinya sama dengan kode yang pertama, cuma yang menjadi beda adalah pada angka 15. Lho koq angka 15? Bukannya angkanya sama aja? Ya kalo angkanya sich sama gan, tapi kalo yang pertama angka 15 adalah angka 15 dalam bilangan desimal sedangkan angka 15h adalah angka 15 dalam bilangan heksadesimal. Trus bedanya apa desimal dengan heksadesimal? Kalo belom tahu agan cari aja postingan ane terdahulu. Jika angka 15h kita ubah menjadi angka desimal maka hasilnya adalah 21. Jadi pada kode yang kedua kita melakukan looping sebanyak 15 heksadesimal atau 21 kali diawali huruf "A" (tanpa kutip) dan mencetak karakter selanjutnya samapi karakter ke-15 heksadesimal atau ke-21. Sehingga output kode yang kedua ada adalah "ABCDEFGHIJKLMNOPQRSTU" (tanpa kutip).
Tugas yang kedua yaitu bikin kode assembly hingga output yang dihasilkan adalah "abcd abcd abcd" seperti ini
Nah ini dia yang bikin tugas ini jadi agak terbengkalai (pak dosen ane minta maaf). Tapi setelah berpusing-pusing ria n saling share ama temen-temen seperjuangan ane di kampus, akhirnya ketemu juga ini kode. N kode yang dimaksud adalah
Akhirnya tugasnya kelar juga. Ane rasa cukup sekian postingan ane kali ini. Semoga bisa bermanfaat bagi agan semua. Sukses itu adalah hasil dari kerja keras. Jadi agan harus selalu berusaha biar bisa, seperti belajar assembly ini. Oke, seperti biasa, tunggu postingan ane selanjutnya..model small
.code
org 100h
mulai :
mov ah,02h
mov cx,3
ulang :
mov dl,97
int 21h
inc dl
int 21h
inc dl
int 21h
inc dl
int 21h
sub dl,68
int 21h
loop ulang
int 20h
end mulai
Tidak ada komentar:
Posting Komentar