Jumat, 30 September 2011

tugas bahas rakitan memunculkan huruf s pada kalimat melalui perulangan

.model small
.code
org 100h
 proses :
        kal Db 'halo$'
       
ulang:
        mov cx,4h
        mov dl,kal[bx]
       
        mov ah,02h
        int 21h
        inc dl
        int 20h
 End proses 
flowchart utk memunculkan huruf 's'
 ketikan rumus ini di notpad asm 
.model small
.code
org 100h

mulai :

jmp ulang
vkal db 'my name is abas$'

ulang :

mov dl, vkal[bx]
mov ah, 02h
int 21h
inc bx
mov ax, bx
cmp ax,9
je exit
jmp ulang


exit : int 20h

end mulai

dan jalankan asm pada dos akan nampak hasil seperti ini 


          


Selasa, 20 September 2011

TUGAS BAHASA RAKITAN:MEMBANDINGKAN SUATU NILAI

Dosen:Nahar Mardiyantoro,M.kom                                                             rabu,21-9-2011
Ketikan code ini dalam notepad
.model small
 .code
 org 100h
 Mulai :
     jmp proses
     bila db 10
     kal1 db 'sama$'
     kal2 db 'lebih kecil$'
     kal3 db 'lebih besar$'
  Proses:
     mov al,bila
     cmp al,8
     je sama
     ja kecil
     jb besar
sama  :  mov ah,09h
     lea dx, kal1
     int 21h
     int 20h
kecil : mov ah,09h
     lea dx, kal2
     int 21h
     int 20h
besar : mov ah,09h
     lea dx, kal3
     int 21h
     int 20h
 End mulai  
Instruksi-instruksi turbo assembler di anataranya adalah:
cmp = compare(sama artinya dengan membandingkan)
je = jump equal(membandingkan dengan nilai sama)
jne = jump not equal(membandingkan dengan nilai tidak sama)
saya akan menggunakan  pembanding   3 macam yaitu sama, lebih kecil dan lebih besar maka digunkan je (jump equal = lompat jika sama), ja (jump above = lompat ke atas) dan jb (jump bellow= lompat ke bawah).
Sedangkan tanda '$' itu sendiri berfungsi untuk membatasi karakter karena jika tanda $ dihapus yang terjadi adalah munculnya karakter yang sangat banyak atau tidak terbatas. sedangkan kapasitas terbatas.
mov al  kerjakan al berisi (isi dari al/bil a =10)
cmp al,   = bandingkan isi dari al  =8
kemudian masuk dalam proses yang mana:
cmp al,8 akan di bandingkan dengan    bila db 10,yang ternyata nilai lebih kecil dari sepuluh kemudian je akan memanggil rumusan yang ada di :
kecil : mov ah,09h
          lea dx, kal2
          int 21h
          int 20h
kemudain rumusan yang ada di kecil: akan memanggil kal2 yang artinya dia akan memanggil isi dari kal2 yaitu lebih kecil maka hasil dari lat3 di atas dalam dos akan muncul :lebih kecil
Lea = Load Effective Address berfungsi mentransfer opsan sumber 16 bit dalam memori ke tujuan 16 bit. lea dx, kal1 berarti dengan alamat kal1 akan dimasukan ke dx.
int 21h merupakan nomor interupsi dimana nama interupsi tersebut adalah DOS function services ,interupsi yang berarti menampilkan data agar dapat dibaca dan int 20h merupakan perintah cetak