You are on page 1of 28

Pemrograman Bahasa Assembly

Pemograman Bahasa Rakitan Assembly


Oleh :
Ninik Yuliana sir200902

A.Pengertian
Bahasa Assembly itu sendiri merupakan bahasa pemograman yang tergolong dalam
pemrograman bahasa tingkat rendah (Low Level Lenguage) dan setingkat diatas bahasa mesin ( Machine
Language).
Dalam pemograman assembly kita akan menemukan apa yang disebut dengan register .Register
itu sendiri merupakan memori dalam mikroprosesor yang bekerja dengan kecepatan yang sangat
tinggi .dan jenis –jenis register itu sendiri dibagi menjadi beberapa bagian yaitu
1.Segmen Register

Register Kegunaan
CS (Code Segmen) Menujukan tempat segmen yang sedang aktif
SS (Stack Segmen) Untuk letak segmen yang digunakan o/ Stack
DS (Data Segmen ) Ketempat segmen dimana data-data program disimpan
ES (Extra Segmen) Register bonus yang tidak memiliki tugas khusus

2.Pointer dan Index Register

Register Pasangan Register Kegunaan


SP(Stack Pointer) SS :SP u/ menunjukan alamat dari stack
BP(Base Pointer) SS:BP u/ mencatat almt dimemori t4 data
SI (Source Index) - Sama spt Register (DI)
DI(Dstination indx) - u/operasi string dengan m’akses secara
lngsng pd alamat yg ditunjukan ol ke 2
register

3.General Purpose Register

Register Kegunaan
AX u/ op. aritmatika terutama dlm pembagian & pengurangan
BX u/ menunjukan suatu alamat offset dr suatu segmen
CX u/ op.looping dmn register menentukan bnyk-nya looping
DX u/ menampung sisa hasil pembagian 16 bit

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

4. Index Pointer Register


Register IP berpasangan dengan CS(CS:IP) menunjukkan alamat dimemory tempat dari
intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan register 16 bit.
Pada prosesor 80386 digunakan register EIP yang merupakan register 32 bit.

5.Flags Register
Flag register menujukan kondisi sari suatu kaadaan [ya atau tidak ].karena setiap keadaan dapat
digunakan 1 bit saja ,maka sesuai dengan jumlah bitnya,flag register hanya mampu mencatat
sampai 16 keaddan .
Flag Kegunaan
- OF <OverFlow Flag>. Jika terjadi OverFlow pada operasi aritmatika,
bit ini akan bernilai 1.

- SF <Sign Flag>. Jika digunakan bilangan bertanda bit ini akan


bernilai 1
- ZF <Zero Flag>. Jika hasil operasi menghasilkan nol, bit ini akan
bernilai 1.
- CF <Carry Flag>. Jika terjadi borrow pada operasi pengurangan
atau carry pada penjumlahan, bit ini akan
bernilai 1.
- PF <Parity Flag>. Digunakan untuk menunjukkan paritas bilangan.
Bit ini akan bernilai 1 bila bilangan yang
dihasilkan merupakan bilangan genap
- DF <Direction Flag>. Digunakan pada operasi string untuk
menunjukkan arah proses.
- IF <Interrupt Enable Flag>. CPU akan mengabaikan interupsi yang terjadi
jika bit ini 0.
- TF <Trap Flag>. Digunakan terutama untuk Debugging, dengan
operasi step by step.
- AF <Auxiliary Flag>. Digunakan oleh operasi BCD, seperti pada
perintah AAA.
- NT <Nested Task>. Digunakan pada prosesor 80286 dan 80386
untuk menjaga jalannya interupsi yang terjadi
secara beruntun.
- IOPL <I/O Protection level>. Flag ini terdiri atas 2 bit dan digunakan pada
prosesor 80286 dan 80386 untuk mode proteksi
- PE <Protection Enable>. Digunakan untuk mengaktifkan mode proteksi.
Flag ini akan bernilai 1 pada mode proteksi dan
0 pada mode real.
- MP <Monitor Coprosesor> Digunakan bersama flag TS untuk menangani
terjadinya intruksi WAIT.
- EM <Emulate Coprosesor>. Flag ini digunakan untuk mensimulasikan
coprosesor 80287 atau 80387
- TS <Task Switched>. Flag ini tersedia pada 80286 keatas.
- ET <Extension Type> Flag ini digunakan untuk menentukan jenis
coprosesor80287 atau 80387.
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

- RF <Resume Flag>. Register ini hanya terdapat pada prosesor


80386 keatas
- VF <Virtual 8086 Mode>. Bila flag ini bernilai 1 pada saat mode proteksi,
mikroprosesor akan memungkinkan
dijalankannya aplikasi mode real pada
mode proteksi. Register ini hanya terdapat pada
80386 keatas

Perintah –Perintah Debug


• A : Merakit intruksi simbolik (kode mesin)
• D : menampilkan isi suatu daerah memori
• E : memasukan data ke memori yang dimulai pad lokasi tertentu
• G : run executable program ke memori
• N : menamai program
• P : eksekusi sekumpulan intruksi yang terkait
• Q : quit
• R : menampilkan isi satu atau lebih register
• T : trace isi sebuah intruksi
• U : unassembled kode mesin ke kode simbolik
• W : menulis program ke disk

Langkah-langkah Pemrograman Bahasa assembly

1.Buatlah Folder asm di C:/


2.Dan untuk menuliskan program assemblynya kita bisa gunakan notepad .dan penyimpananya
dimasukan di folder ASM yang sudah kita buat tadi,
Dan penyimpanannya kita tambahkah .asm misalnya latihan.asm
3.Dan selanjutnya yang kita lakukan adalah meng-compire /menjalankan program tadi apakah
sudah benar atau masih terdapat kesalahan yaitu dengan
Klik AllProgram –Accessorise- pilih Command Prompt. Apabila sudah kita pilh maka akan munjul
tampilan seperti ini

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Apabila sudah masuk ke command prom berarti kita tinggal mengejalankan program kita tadi
.yaitu dengan langkah-langkah dibawah ini.
 yang pertama cara supaya kita bisa masuk kedalam folder penyimpanan asm yang sudah kita
simpan tadi yaitu di C:/

 selanjutnya kita masukan ke TASM {NAMA PROGRAM }.asm


TASM digunakan untuk mengetest apakah masih terdapat kesalahn dalam program atau tidak.

Dan kita masukan ke TLINK / t { NAMA PROGRAM }.OBJ


TLINK / t untuk me link-kaan program menjadi program COM
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

TLINK untuk melink-kan program menjadi program EXE

 Selanjutnya kita tinggal memanggil program kita misalnya Lathan,.COM.


Kemudian ENTER.

Cara cepat mencompire-nya lebih cepat maka kita digukan dengan extensi .BAT.
 Buka notepad baru dan ketikasn program seperti ini
@echooff
Tasm {nama program} .asm
Tlink/t {nama program} .obj
{nama program}.com
 kemudian di folder ASM dan simpan misalnya Latihan.bat

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Praktikum-praktikum Bahasa Assembly

Pencetakan Satu Karakter

Praktikum 1
Program pencetakan satu karakter ‘ A ’

====================================================================
.MODEL SMALL ; memulai program
.CODE
ORG 100h ; menujukan bahwa program yang akan dibuat berupa.COM

Mulai:

Mov ah,02 ; service unk mencetak satu karakter


Mov dl , ‘A’

INT 21h ; interrupt untk menampilkan / mencetak isi program


INT 20h ; intrurrupt untk menghentikan program
End mula ; mengahiri program
====================================================================

Hasil program : pencetakan satu Karakter ‘A’

Ket : pada saat terjadi interuptsi pada 21h,maka register akan melihat isi pada AH Jika berisi
02,maka akan mencetak satu karaktr berdasarka kode ASCII yang terdapat di DL.
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

PENCETAKAN BEBERAPA KARAKTER dengan Service 02h


Praktikum 2
Program pencetakkan beberapa karakter dengan menggunakan service 02h.
Program.misal kita akan mencetak ‘ BUNGA ’

====================================================================
.MODEL SMALL
.CODE
org 100h

Mulai:
mov ah,02 ; service mencetak satu karakter
mov dl,’B’ ; register yang akan dicetak B
INT 21h

mov dl,’U’ ; register yang akan dicetak U


INT 21h

mov dl,’N’ ; register yang akan dicetak N


INT 21h

mov dl,’G’ ; register yang akan dicetak G


INT 21h

mov dl,’A’ ; register yang akan dicetak A


INT 21h

INT 20h
End mulai
====================================================================
Hasil Program :Pencetakan beberapa karakter dg menggunakan servive 02h

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Ket : Pencetakan yang digunakan masih menggunakan service 02h,tetapi disini masih menggunakan
secara manual yaitu pada DL.pada program masih menggunakan DL secra berulang-ulang yaitu akan disi
sejumlah karakter yang akan ditampilkan.

Perulangan (LOOP)
Dalam pencetakan beberapa karakter,selain menggunakan service 02h dapat juga menggunakan looping
atau dengan register CX.

Register CX digunakan secara khusus pada operasi looping dimana register ini menentukan berapa
banyaknya looping yang akan terjadi.

Praktikum 3

Program pencetakan karakter huruf


ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA

===========================================================================
.MODEL SMALL
.CODE
ORG 100h

mulai:
mov ah,02h ;service mencetak karakter
mov dl,'A'
mov cx,25 ; akan melooping sebanyak 25
ulang:
int 21h
inc dl ; tambah DL sebanyak 1
loop ulang ; akan mengulang label ulang sebanyak 25 kali
mov dl,'Y'
mov cx,25
maning:
int 21h ; akan mencetak / menampilkan karakter
dec dl ; kurangi DL senyak 1
loop maning ; akan menulang label maning sebanyak 25 kali
int 20h
End mulai
================================================================

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Hasil program praktikum 3 : Mencetak karakter ‘


ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA ’

Ket :

looping atau perulangan ini sama dengan perintah jump.semua instruksi loop menggunakan register CX
memiliki 16 bit dan nilai maksumum dapat mencangkau 65535.

Praktikum 4

Program menampilkan karakter ‘ BDFHJLNPRTVXZ ‘


==========================================================================
.MODEL SMALL
.Code
org 100h

mulai:
mov ah,02h ;service mencetak karakter
mov dl,'B'
mov cx,13 ;register untuk me-looping

ulang:
int 21h
inc dl ;Tambah DL Sebanyak 1
inc dl

loop ulang ;Lompat ke label ulang


int 20h ;service menghentikan program
end mulai
===========================================================================

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Hasil program praktikum 4

Membuat Karakter Huruf menjadi Berwarna


Tadi kita sudah bisa menampilkan beberapa karakter,dan sekarang kita akan mengmodif tampilan
karakter tdi menjadi tulisan berwarna agar lebih menarik.dengan menggunakan register BL.

Praktikum 5

Program tampilan karakter berwarna

===========================================================================
.MODEL SMALL
.CODE
ORG 100h

mulai:
mov ah,09h ;service untuk mencetak kalimat
mov al,'A' ;masukan A ke AL
mov bl,00000001b ;service mengubah karakter menjadi berwarna
mov cx,25 ;register untuk me-looping
ulang:
int 10h
inc al ;tambah AL
inc bl ;tambah BL
loop ulang
int 20h
end mulai
===========================================================================

Hasil program praktikum 5

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Membuat Warna Background


Praktikum 6

Program membuat warna background

===========================================================================
.model small
.code
org 100h
mulai:

mov ah, 09h ;service untuk mencetak kalimat


mov al, 'A’
mov bl, 01001101b ; service membuat baground warna
mov cx, 10 ;looping senyak 10 kali

ulang:
int 10h
inc al ;tambah AL
loop ulang ;lompat ke ulang
int 20h
end mulai
===========================================================================

Hasil Program Praktikum 6

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Membuat Program dengan JMP


Perintah JMP (jump) merupakan perintah yang digunakan untuk melompat daerah data progam.

Praktikum 7

=========================================================================
.Model Small
.Code
org 100h
mulai:
jmp proses
vkal db ' my love $ '
vkalr db 'is blink $ '
proses :
mov ah,09h
lea dx,vkal
int 21h
lea dx,vkalr
int 21h
int 20h
end mulai
===========================================================================
Hasil program Prktikum 7
Ket :
LEA :

Perintah untuk mendapatkan alamat dari sebuah variable..


JMP: Perintah untuk melakukan lompatan ke label tertentu.
DB (Define Byte) : suatu jenis data yang besarnya 1 byte

Program Pengoprasian Aritmatika


Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Praktikum 8
===========================================================================
.model small
.code
org 100h
proses :
mov ah,15h ;AH = 15 h
mov al,4 ;AL= 4
add ah,al ;AH = AH + AL = 19h
mov ax,1234h ;AX=1234 h CF=0
mov bx,0f221h ;BX=01221h
add ax,bx ;AX=AX+BX=1234h+01221h =2455h
mov bx,9ABCh ;BX=9ABCh CF=0
mov cx,5678h ;BX=5678h CF=0
mov dx,0DEF0h :DX=DEF0h CF=0
add cx,dx ;5678h+0DEF0h
adc ax,bx ;1234h+9ABCh
inc al
int 20h
end proses
===========================================================================

Ket ;
ADD , ADC dan INC digunakan untuk menambah.
ADD Tujuan,Asal
Mov ah,15h
Mov al,4
Add ah,al ;ah=ah+al jadi AH=19h
Dan pada ADD ini antara tujuan dan asal harus mempunyai daya tampung yang sama,jika AH =8bit dan
AL=8bit , AX=16bit dan BX= 16 bit.
Adapun hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h .adapun Flag-
flag yang terpengaruh oleh perintah ADD dan ADC adalah CF,PF,AF,ZF,SF dan OF

INC (increment)digunakan khusus untuk pertambahan dengan 1.

Membuat Program Password

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

FLOWCHART

praktikum 9
===========================================================================
.Model Small
.Code
org 100h
mulai:
jmp proses
vkal db 10, 'ENTER PASSWORD:',13,10,' $ '
vkalr db 13,10,'INCORECT $'
vkals db 10, 'WELCOME GUYS ',10,' $'

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

mov ah,08h
int 21h

cmp al,'Y'
JE OK1
JNE NO1
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

OK1:
mov ah,02h
mov dl,2Ah
int 21h
mov ah,08h
int 21h
cmp al,'O'
JE OK2
JNE NO2

NO1:
mov ah,09h
lea dx,vkalr
int 21h
jmp proses

OK2:
mov ah,02h
mov dl,2Ah
int 21h
mov ah,08h
int 21h
cmp al,'U'
JE OK3
JNE NO3

NO2:
mov ah,09h
lea dx,vkalr
int 21h
jmp proses

OK3:
mov ah,02h
mov dl,2Ah
int 21h
mov ah,08h
int 21h
cmp al,'R'
JE OK4
JNE NO4

NO3:
mov ah,09h

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

lea dx,vkalr
int 21h
jmp proses

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

mov ah,09h
lea dx,vkals
int 21h
int 20h

NO4:
mov ah,09h
lea dx,vkalr
int 21h
jmp proses

end mulai
===========================================================================

Hasil program praktikum 9

KET:
LEA :

Perintah untuk mendapatkan alamat dari sebuah variable..


JMP: Perintah untuk melakukan lompatan ke label tertentu.
DB (Define Byte) : suatu jenis data yang besarnya 1 byte
JE ( JUMP IF EQUAL ):Lompat ,jika operant1=operant 2
JNE (JUMP NOT EQUAL) :Lompat jika operant 1 tidak sama dengan operant 2
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Membuat Program Inputan


Praktikum 10
===========================================================================
.Model Small
.Code
org 100h
Proses :
jmp mulai
vkal db 13,' apakah anda sudah belajar :??(y/t) $ '
vkalr db 10, ' Berarti anda bisa memahaminya !! $ '
vkals db 10, ' sayang sekali belum !! $ '
Mulai :
mov ah,09h
lea dx,vkal
int 21h

mov ah,01h
int 21h

cmp al,'y'
cmp al,'Y'
Je ya
JNE Tidak

ya:
mov ah,09h
lea dx,vkalr
int 21h
int 20h

Tidak:
mov ah,09h
lea dx,vkals
int 21h

int 20h
end proses
===========================================================================
Hasil Program

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Ket :
Pada

program diatas adalah suatu perbandingan yang apabila inputan yang diberikan berupa “ Y” Maka akan
mendeteksi yang sama dengan operant1 atau JE ya:”Berarti anda bisa memahaminya!!
tapi tidak berlaku jika yang kita masukan adalah “y” atau huruf-huruf yang lain maka hasilnya akan
mendeteksi yang JNE tidak: “sayang sekali belum” !!
Jika Inputan yang berikan adalah “T” maka akan mendeteksi JNE tidak.

LEA : Perintah untuk mendapatkan alamat dari sebuah variable..


JMP: Perintah untuk melakukan lompatan ke label tertentu.
DB (Define Byte) : suatu jenis data yang besarnya 1 byte
JE ( JUMP IF EQUAL ):Lompat ,jika operant1=operant 2
JNE (JUMP NOT EQUAL) :Lompat jika operant 1 tidak sama dengan operant 2
CMP(COMPERE) :Digunakan untuk membandingkan antara operant 1dengan operant2.

Membuat program pencarian huruf


Praktikum 11

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

===========================================================================
.Model Small
.Code
org 100h
data:
jmp mulai
asal db 'widyautama ',13,10,'$'
kata db 'masukan huruf yang dicari : ',13,10,' $'
ket1 db 'Huruf ditemukan ',13,10,'$'
ket2 db 'huruf tidak ditemukan ',13,10,' $'
mulai:
xor bx,bx ;cek panjang kalimat
cek :
mov al,asal [bx] ;pindahan 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

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

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

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

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
===========================================================================
Hasil program praktikum 11

Program POP dan PUSH


Pop Dan Push dapat kita bayingkansebagai sebuah tabung yang panjang.sedangkan nilai pada register
dapat dibayangkan berbentuk koin yang dimasukan dalam tabung tersebut.dan push itu sendiri diibaratkan
kita sedang memasukan koin

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

PUSH AX :Simpan nilai AX pada stack


PUSH BX: Simpan nilai BX pada stack
PUSH CX: Simpan nilai CX pada stack

Sedangkan POP akan mengambil koin nilai pada stack yang paling atas dan dimasukan pada register 16
bit .dari sini bisa kita lihat bahwa data terakhir dimasukan akan merupakan yang pertama dikeluarkan
.Inillah sebanya operasi stack dinamakan LIFO ( Last In First Out )
Sebagai contoh untuk mengambil nilai dari register AX,BX dan CX yang disimpan pada stack harus
dilakukan pada register CX dahulu brulah BX dan AX seperti :
POPCX: Ambil nilai pada puncak stack,masukan ke CX
POPBX: Ambil nilai pada puncak stack,masukan ke BX
POPAX: Ambil nilai pada puncak stack,masukan ke AX
Bila terbalik dalam menngambil nilai pada stack dengan POP AX kemudian POP BX dan POP CX,maka
nilai yang akan didapatkan pada register AX,BX,CX akan terbalik.

Praktikum 13
===========================================================================
.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

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

int 21h
ret
cetak_k endp

end mulai
===========================================================================

Hasil Program

Praktikum 14
===========================================================================
.Model Small
.Code

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

org 100h

mulai:
mov bl,10
mov al,14
div bl

push ax ;simpan nilai ax pd stack


mov dl,al
add dl,30h
mov ah,2
int 21h

pop ax ;ambil nilai pada puncak stack masukan ke ax


mov dl,ah
mov ah,2
add dl,30h
int 21h
int 20h
end mulai
==========================================================================
Hasil program

Praktikum 15
===========================================================================
.model small
.code

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

org 100h

Tdata:
jmp proses
test_angka DW 345

Proses:
mov ax,test_Angka
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'
mov ah,02
int 21h

loop cetak

int 20h

end tdata
===========================================================================
Hasil program

Praktikum 16
===========================================================================
code segment

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

assume cs:code
org 100h

start:
jmp mulai
tanya db 'hello','$'
mulai:
mov ah,09h
mov dx,offset tanya
int 21h
mov ah,01h

int 21h
cmp al,'y'
jne boot
int 20h

boot:
int 18h

code ends

end start
===========================================================================
Hasil program

Praktikum 17
===========================================================================
.model small
.code
Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

org 100h
tdata:
jmp res_kan
pesan db 'dibelokan'

noint equ 05h


bag_res proc
push ax
push bx
push dx
push es
push di
push ds
push si
mov ax,1300h
mov bl,01001111b
mov bh,00h
mov,20h
mov dh,12h
mov cx,44h
push cx
push es
lea bp,pesan
1nt 10h
push si
push ds
push di
push es
push dx
push cx
push bx
push ax
bag_res endp
res_kan :
mov ah,25h
mov al,noint
lea dx,res_kan
int 27h

end tdata
===========================================================================
Lampiran Code ASCII

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09
Pemrograman Bahasa Assembly

Ninik Yuliana
TI / SIR200902
STMIK WIDYA UTAMA PURWOKERTO ‘09

You might also like