Diberdayakan oleh Blogger.
RSS

Pasword & angka

Program Pasword

.model small
.code
org 100h
mulai:
jmp proses
vcal db 10,'ENTER

PASSWORD:$'
vcal1 db 10,'*$'
vcal2 db 10,'PASWORD

EROR..!!!$'
vcal3 db 10, 'WELCOME

WONG GANTENG...$'
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, vcal2
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, vcal2
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, vcal2
INT 21H
jmp proses
ya4:
mov ah, 02h
mOV dl, 2Ah
int 21h
mov ah, 09h
lea dx, vcal3
int 21h
int 20h
tidak4:
mov ah, 09h
lea dx, vcal2
INT 21H
int 20h
end mulai
Hasil compail



Program Mencetak Angka



Stack dapat kita bayangkan sebagai sebuah tabung yang panjang. Sedangkan
nilai pada register dapat dibayangkan berbentuk koin yang dapat dimasukkan dalam tabung tersebut. Untuk memasukkan nilai suatu register pada stack, digunakan perintah push dengan syntax: PUSH Reg16Bit
Sebagai contohnya pada perintah
PUSH DX ; Simpan nilai DX pada stack
Perintah POP akan mengambil koin nilai pada stack yang paling atas dan
dimasukkan pada Reg16Bit. Dari sini dapat anda lihat bahwa data yang terakhir
dimasukkan akan merupakan yang pertama dikeluarkan.
Sebagai contohnya, untuk mengambil nilai dari register AX, BX dan CX yang disimpan pada stack harus dilakukan pada register CX dahulu barulah BX dan AX, seperti:
POP CX ; Ambil nilai pada puncak stack, masukkan ke CX
Hasil compail

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Counter dan Attribut karakter

Program Counter dan Attribut karakter


ragister CX adalah register yang berfungsi segai Counter, sehingga progam
akan mencetak sebanyak n kali sesuai dengan operand yang di tentukan
sedangkan register bl , di gunakan untuk memberikan attribut dari karakter
yang akan kita cetak dengan bantuan interrupt 10h dan service 09h untuk
memanipulasi layar.
Nilai yang di masukkan kedalam register bl dapat berupa nilai biner 8 bit
atau nilai hexa desimal yang nilainya sama dengan nilai biner tersebut.
Setelah di compail


dengan menambahkan interrupt 21h dengan service 09h, kemudian
mengulang register bl yang berisi attribut warna, maka akan menghasilkan
karakter yang kita cetak tadi mempunya warna yang bervariasi.


untuk mencetak string dapat menggunakan variabel yang di deklarasikan
seperti perintah di atas
bagian deklarasi variabel tidak boleh di lalui oleh progam sehingga
langsung menuju ke label selanjutnya dengan perintah jmp
untuk mencetak string tersebut kita menggunakan interrupt 21h dengan
service 09h
pindahkan nilai yang ada di dalm varaibel tersebut kedalam register dx
untuk di tampilkan di layar(mov dx,offset ).
Perintah ini juga dapat di ganti dengan lea dx,




Program mencari karakter

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

asal db 'widyautama$'
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]
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


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

mov ah, 02h
mov dl, 2dh
int 21h

mov ah, 09h
lea dx, asal [bx]
int 21h
barisBaru:
mov ah, 2
mov dl, 13
int 21h
mov dl, 10
int 21h
int 20h
end data
Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang
ditunjukkan oleh perintah JUMP.
JE (Jump If Equal)| Lompat, jika Operand1 = Operand2
JNE (Jump If Not Equal) Lompat, jika Operand1 tidak sama
dengan Operand2
Hasil compail



Hasil compail




Hasil compail

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Mencetak kata & looping

Program Mencetak Kata




Sama seperti program diatas hanya saja program ini menampilkan kata lebih dari satu contoh yang lain menampilkan nama seperti dibawah ini.




Hasil akan muncul nama OKTAFIAFIANI NF






Program Perulangan (Loop)




Inti program untuk mencetak kata A berulang-ulang sebanyak perintah yang ada dengan menggunakan mov cx,9 hasil outputnya menjadi AAAAAAAAA. Contoh lainnya.
Hasil compail


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Menampilkan huruf

Nama

Nama : Oktafiani Nur Farida
NIM : SIR200925

TUGAS BAHASA RAKITAN


Program Menampilkan Huruf
  • Model Small (untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita)
  • Code org 100h (digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan code segmentnya disini,dapat digunakan juga untuk menyimpan program yang akan dijalankan)
  • Mulai (label yang digunakan sebagai awalan untuk memulai program dan label ini harus ditutup dengan end mulai)
  • Mov ah,2 (Nilai servis untuk mencetak karakter)
  • Mov dl,’B’ (dl = karakter ASCII yang akan dicetak)
  • Int 21h (Perintah mencetak karakter)
  • Int 20h (untuk menhentikan perintah)
  • Hasil setelah dicompailseperti dibawah




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS