Rabu, 02 Februari 2011

PROGRAM INPUTAN

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

.model small
.code
org 100h
data:
jmp mulai

asal db'widya utama$'

kata db'masukan huruf yang dicari :$'
ket1 db'huruf ditemukan$'
ket2 db'huruf tidak ditemukan$'

mulai:

xor bx,bx ; cek panjang kalimat

cek:

mov al,asal[bx]; pindahkan asal [index] ke al
inc bx
cmp al,'$'
jne cek

dec bx

mov cx,bx

xor bx,bx

mov ah,9
mov dx,offset asal
int 21h

mov ah,2

mov dl,13
int 21h
mov dl,10
int 21h

mov ah,9

mov dx,offset kata
int 21h
mov ah,1
int 21h

ulang:

mov dl, asal[bx]
inc bx
cmp dl,'$'
je salah
cmp al,dl
jne ulang
jmp benar
salah:
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
mov ah,9
mov dx,offset ket2
int 21h
jmp barisbaru
benar:
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
mov ah,9
mov dx,offset ket1
int 21h
jmp barisbaru
barisbaru:
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
int 20h
end data

output :

»»  READMORE... : both;'/>
PROGRAM PENGURANGAN DENGAN 1 (DEC)

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

.model small

.code

org 100h

mulai:

mov ah,02h

mov dl,'D'

mov cx,4

ulang:

int 21h

DEC dl

loop ulang

int 20h

end mulai


output :
Program tersebut akan menghasilkan output yaitu DCBA

  • Mov cx,4 (program akan melakukan perulangan sebanyak 4x dengan nilai dari D terus berkurang satu)

  • dec dl (perintah untuk melakukan pengurangan terhadap nilai D)

  • Perintah DEC (Decrement) digunakan khusus untuk pengurangan dengan 1.

»»  READMORE... : both;'/>
PROGRAM MENCELAK A,C,E,G...Y

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

.model small

.code

org 100h

mulai:

mov ah,02h

mov dl,'A'

mov cx, 13

ulang:

int 21h

inc dl

inc dl

loop ulang

int 20h

end mulai

maka akan menghasilkan outputan: A,C,E,G,I,K,M,P,R,T,V,X,Y

Mov cx, 13 (Jumlah semua huruf abjad adalah 26, output yang kita inginkan adalah A,C..Y. nilai dari A ke C adalah selisih 2. Maka 26/2 hasilnya adalah 13 artinya kita hanya memerlukan perulangan sebanyak 13x)

»»  READMORE... : both;'/>

PROGRAM STACK

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

tuliskan source berikut ke notepad:

.model small

.code

org 100h

mulai:

mov ax,15

mov bx,80


add ax,bx

mov bx,10

xor cx,cx


ulang:

xor dx,dx

div bx

push dx

inc cx

cmp ax,0

jne ulang


cetak:

pop dx

add dl,'0'

call cetak_k

loop cetak


int 20h

cetak_k proc near

mov ah,02

int 21h

ret

cetak_k endp

end mulai

maka akan menghasilkan output: 95


»»  READMORE... : both;'/>

Membuat Password

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

Untuk membuat password logikanya kita membandingkan password pada program dengan inputan dari keyboard.
Salah satu perintah yang akan digunakan adalah CMP(compare). CMP akan membandingkan operand1 dengan operand2 dengan cara mengurangkan operand1 dengan operand2. CMP tidak mempengaruhi nilai operand1 dan operand2, perintah CMP hanya akan flags register sebagai hasil perbandingan.

Ok langsung saja prakteknya. . .
Tuliskan Source ini ke notepad:

.model small
.code
org 100h
mulai:
jmp proses
vcal db 10, 'ENTER PASSWORD: $'
vcal1 db 10, 'INCORRECT$'
vcal2 db 10, 'ASSALAMUALAIKUM...$'

proses:
mov ah, 09h
lea dx, vcal
int 21h

mov ah, 07h
int 21h

cmp al, 'Y'
je ya1
jne tidak1

ya1:
mov ah, 02h
mov dl, 2Ah
int 21h

mov ah, 07h
int 21h

cmp al, 'O'
je ya2
jne tidak2

tidak1:
mov ah, 09h
lea dx, vcal1
int 21h
jmp proses

ya2:
mov ah, 02h
mov dl, 2Ah
int 21h

mov ah, 07h
int 21h

cmp al, 'U'
je ya3
jne tidak3

tidak2:
mov ah, 09h
lea dx, vcal1
int 21h
jmp proses

ya3:
mov ah, 02h
mov dl, 2Ah
int 21h

mov ah, 07h
int 21h

cmp al, 'R'
je ya4
jne tidak4

tidak3:
mov ah, 09h
lea dx, vcal1
int 21h
jmp proses

ya4:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 09h
lea dx, vcal2
int 21h
int 20h

tidak4:
mov ah, 09h
lea dx, vcal1
int 21h
jmp proses


end mulai

kalo udah dijalankan maka akan muncul "ENTER PASSWORD: ", kalau kita salah memasukan password maka akan muncul "INCORRECT"

passwornya "YOUR"


»»  READMORE... : both;'/>

Belajar mencetak kalimat berwarna

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

Setelah tadi kita belajar mencetak kalimat tanpa atribut, sekarang saya akan bahas tentang kalimat beratribut. Untuk mencetak kalimat beratribut kita menggunakan interupsi 10h. Ok langsung Praktek saja, kali ini saya akan coba membuat kalimat dengan foreground berwarna biru dan background berwana hijau.
tuliskan source berikut di notepad:


setelah dijalankan maka output'a:


(semoga bermanfaat)

»»  READMORE... : both;'/>

Belajar mencetak kalimat

NAMA: M Hasbi Sadam A

NIM : sir200922
BAHASA RAKITAN

Untuk mencetak kalimat dengan DOS kita menggunakan interupsi 21 dan fungsi 9.
Tuliskan Source dibawah ini pada notepad:

Output dari program diatas adalah
M Hasbi Sadam A
mahasiswa STMIK Widya Utama Purwokerto
lahir 10 Februari 1992

pada akhir dari setiap kalimat yang ingin dicetak harus kita tambahkan karakter"$". Karakter itu dipakai sebagai akhir kalimat.

(semoga bermanfaat)
»»  READMORE... : both;'/>

Penggunaan Looping (perulangan)

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

Looping adalah proses berulang-ulang. Pada proses perulangan dengan perintah LOOP, disini register CX memegang satu peranan yang khusus dimana register ini dijadikan counter/penghitung terhadap banyaknya looping yang boleh terjadi.

gampangnya pada perintah looping itu, register cx akan dikurangi terlebih dahulu, kemudian akan dilihat apakah register cx sudah bernilai 0. Proses looping akan berhenti apabila register cx sudah bernilai 0.

1. Looping berurutan dan simbol
seperti biasa tuliskan source dibawah ini pada notepad.

bila program tersebut dijalankan maka outputnya adalah "abcdefghij dan simbol-simbol"

2. Looping berurutan

bila program tersebut dijalankan maka outputnya adalah "abcdefghijklmnopqrstuvwxyz"


3. Looping berurutan terbalik

klo yang ini outputnya "zyxwvutsrqponmlkjihgfedcba"

4. Looping berurutan bolak-balik


kalau programnya dijalankan outputnya adalah "abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba"


5. Looping melompati 1 karakter


output dari program di atas adalah "bdfhjlnprtvxz"

keterangan:
mov dl, ; dl=karakter
mov cx, ; banyaknya perulangan
inc dl ; tambah dl dengan 1
loop ulang ;lompat ke ulang

semoga bermanfaat..


»»  READMORE... : both;'/>

Mencetak Karakter dengan Assembly

NAMA: M Hasbi Sadam A
NIM : sir200922
BAHASA RAKITAN

HALLO SEMUA!!!
Postingan ini adalah praktikum pertama dalam kuliah pemrograman bahasa rakitan. Sesuai judulnya kali ini kita akan mencetak sebuah karakter pada program assembly.

mau tau caranya?

Pertama-tama kamu sudah harus ketikan program compiler nya, lalu tuliskan source seperti dibawah ini pada notepad:



kemudian save dengan ekstensi .asm


selanjutnya bukalah commont prompt lalu kita masuk pada folder compiler yang sudah kita miliki (ga usah di jelaskan,pasti sudah pada tau)
Kemudian kita harus mengcompile file .asm tersebut menjadi file .obj

Caranya ketikan: tasm (spasi) (nama file)
Contoh: tasm coba.asm
lalu tekan enter, maka dengan sendirinya file tersebut tercompile menjadi file object


Seperti pada postingan sebelumnya "file .obj tidak dapat kita eksekusi langsung namun harus kita rubah lagi menjadi file .exe atau .com"

caranya ketikan:
tlink/t (spasi) (nama file) "untuk menghasilkan file .com"
tlink (spasi) (nama file) "untuk menghasilkan file. exe"
Contoh: tlink/t coba.obj

Setelah file tersebut berhasil kita rubah menjadi .com maka kita bisa mengeksekusinya!



dari gambar di atas dapat kita lihat
Output dari source di atas adalah "a"
apabila program yang kita jalankan error,maka proses pun tidak akan menghasilkan apa-apa. dan kesalahan dalam program yang kita jalan dapat kita ketahui,karena ERROR MASSAGE akan menunjukkan dimana letak kesalahannya.
ket:
mov ah,02h ; nilai servis untuk mencetak karakter
mov dl,'a' ; karakter ASCII yang akan di cetak
int 21h ; Cetak karakter !
int 20h ; selesai!!!
»»  READMORE... : both;'/>

Memulai Assembly


Untuk menuliskan Source file program assembly kita bisa menggunakan berbagai program text editor.
dalam assembly kali ini kita akan menggunakan program bawaan dari windows yaitu NOTEPAD.

Setelah kita tuliskan Source file, maka kita harus menyimpannya dengan ekstensi .asm
contoh: coba.asm

Source file yang tadi kita buat tentunya tidak bisa langsung kita jalankan pada sebuah sistem komputer, maka terlebih dahulu kita harus compile file yang tadi kita buat menjadi file .OBJ (object) kemudian dari file object tersebut kita rubah kembali menjadi file (.COM) agar file tersebut bisa langsung di eksekusi

ini adalah halaman awal ketika kita membuka program cmd:
»»  READMORE... : both;'/>

Assembly adalah bahasa pemrograman komputer. Bahasa rakitan adalah skrip untuk bahasa mesin yang bisa dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur komputer yang digunakan. Bahasa mesin adalah pola bit-bit (serangkaian nomer-nomer biner) tertentu yang merupakan kode operasi mesin.

Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa rakitan biasanya mempunyai hubungan 1-1 dengan instruksi bahasa mesin. Misalnya, tiap julukan yang ditulis di program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh assembler, dan proses baliknya dilakukan oleh disassembler.

Walaupun bahasa tingkat tinggi terus berkembang dengan segala fasilitas dan kemudahannya, peranan bahasa pemrograman tingkat rendah tetap tidak dapat digantikan. Bahasa assembly mempunyai keunggulan yang tidak mungkin di ikuti oleh bahasa pemrograman tingkat apapun dalam hal kecepatan, ukuran file yang kecil serta kemudahan dalam manipulasi system komputer.
»»  READMORE... : both;'/>