Mengenang si Assembly dari Pencari Huruf Vokal sampai hello Word!

Assemby, apaan tuh?

Mungkin kamu tahu kenapa komputer di ciptakan, yaitu untuk memudahkan pekerjaan manusia. tapi apakah kamu tahu bahasa apa yang digunakan manusia untuk berinteraksi dengan komputer :D jawabannya mah, bahasa pemrograman kn.

selanjutnya tahu kah kamu Assembly itu merupakan bahasa yang ngertiin mesin banget deh. dalam kategori bahasa, assembly merupakan bahasa tingkat rendah yang sulit dikuasai. ya, dulu pernah sih belajar bahasa ginian dan asli ngeraba-raba :v sungguh berbeda dengan bahasa Php atau java apalagi Vb.net hehe.

Dulu itu..

pernah dapet tugas buatin bendera di asia dengan Assembly :v haha  gimana tuh, bisa bayangin kan gimana ngerabanya. memang tidak begitu sulit, tapi pemahamannya belum memahami semua syntaknya secara keseluruhan jadinya kendala dalam proses pengerjaannya, tapi syukur semuanya dapat di atasi :8 hehe

jadi Assembly ini dipelajari ketika kamu mengambil mata kuliah Arsitektur dan Organisasi Komputer, disitu kamu diharuskan mengerti tentang arsitektur dari kinerja prossesor dan juga kawan-kawannya baik cara kerja dan lainnya deh.

mari, Write Code! ^_^

untuk mengenang di Assembly, berikut sederhananya implementasi Bahasa Assembly mencari huruf vokal dan total kata yang di inputkan.


org 100h

AWAL:
MOV CL,30H
JMP PROSES
KAL0 DB 'Ketikkan kalimat pertama :$'
KAL6 DB 'Ketikkan kalimat kedua :$'
KAL1 DB 13,10,'Kalimat pertama yang diinput adalah :$'
KAL7 DB 13,10,'Kalimat kedua yang diinput adalah :$'
KAL2 DB 13,10,'Cetak dari belakang :$'       
KAL3 DB 13,10,'Panjang String :$' 
KALX DB 13,10,'$' 
KAL4 DB 13,10,'Jumlah Huruf Vokal :$'      
KAL5 DB 13,10,'Jumlah Huruf Konsonan :$'           
KATA DB 20,?,20 DUP (?)
KATA1 DB 20,?,20 DUP (?)   

VOKAL:INC CL
JMP PLUS

PROSES:
;=============CETAK STRING1=============

MOV AH,09H
MOV DX,OFFSET KAL0
INT 21H  

;============= INPUT STRING1 ===========

MOV AH,0AH
LEA DX,KATA
INT 21H 
 
;============= CETAK STRING1 ===========

MOV AH,09H
MOV DX,OFFSET KAL1
INT 21H      

;============= CETAK VARIABEL =========

MOV BX, OFFSET  KATA+2

CETAK:

MOV DL,[BX]
CMP DL,0DH
JE BELAKANG
MOV AH,02H
INT 21H

CMP DL,'a'
JE VOKAL       

CMP DL,'i'
JE VOKAL  

CMP DL,'u'
JE VOKAL  

CMP DL,'e'
JE VOKAL  

CMP DL,'o'
JE VOKAL  
       
CMP DL,'A'
JE VOKAL       

CMP DL,'I'
JE VOKAL  

CMP DL,'U'
JE VOKAL  

CMP DL,'E'
JE VOKAL  

CMP DL,'O'
JE VOKAL 

PLUS:INC BX
JMP CETAK

;=============== CETAK KATA DARI BELAKANG =========

BELAKANG: MOV AH,09H

JE VOKAL1

;============== CETAK JUMLAH VOKAL ===============

VOKAL1:
MOV AH,09H
MOV DX,OFFSET KAL4
INT 21H

MOV DL,CL
 
MOV AH,02H
INT 21H

;============ CETAK PANJANG STRING ============

AKHIR:

MOV AH,09H
MOV DX,OFFSET KAL3
INT 21H
MOV BX,OFFSET KATA+1
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H

SELESAI:
INT 20H
END AWAL
   
ret ;ondynamic


Jadi, hasilnya kalau sudah dicompile dan di run jadinya seperti berikut, saya menggunakan Emu8086 tapi bisa juga sih gunain command Line :D

 
 
tapi kalau dasarnya, ketika belajar bahasa pemrograman itu kan di mulai dari Hello Word!, berikut codenya di Assembly :



#make_BIN#


MOV     AX, 0B800h
MOV     DS, AX

MOV [52h], 'H'

MOV [54h], 'E'
 
MOV [56h], 'L'

MOV [58h], 'L'

MOV [5Ah], 'O'

PUSH    CS
POP     DS      ; DS = CS.
MOV     AX, 0B800h
MOV     ES, AX

MOV ES:[5Eh], 'W'
 
MOV ES:[60h], 'O'

MOV ES:[62h], 'R'

MOV ES:[64h], 'L'

MOV ES:[66h], 'D'

MOV ES:[68h], '!'

HLT

hehe gimana asikkan.. ia Assembly itu asik lo sebenarnya. jika kamu sudah mengerti dasar-dasarnya dimulai dari mengerti akan Binner dan Hexa pasti ngertilah dikit-dikit :D hehe..

 jadi, teruslah belajar.. jangan sebatas belajar di kelas , sekolah atau kampus. belajar lah dimana saja.. yang penting semangat dan niat, jika itu sudah ada baru Usaha. ^_^
Moga bermanfaat, Salam Coding! 

1 comment:

  1. Wah baru pertamakali liat bahasa Assembly :D
    makasih infonya...

    ReplyDelete