Anda di halaman 1dari 41

A.

CARA MENJALANKAN PROGRAM DEBUG


I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Program DEBUG dalam
praktek mikroprosesor yang dilaksanakan.

II. TEORI SINGKAT


Buka commond promt dan ketik debug
C:\documents and setting >debug
1. Q (quit)
2. Masuk ke debug dengan mengetik debug
3. H (hexa)
4. R (register)
5. A (assembler)
6. N (name)
7. RCX
8. RIP
9. W (write)
10. G (go)
11. T (trace)
12. U (unassemble)

B. INTRUKSI MOV

I. TUJUAN
Mahasiswa dapat mengetahui kegunaan intruksi MOV dan menjalankan program
dengan intruksi MOV dalam membuat sebuah program dalam praktek mikroposesor
yang dilaksanakan

II. TEORI SINGKAT


MOV tujuan sumber : kopi/salin operand sumber ke tujuan
MOV DX,CL : menyalin isi dari register CX ke register DX
MOV AL,BL : menyalin BL ke AL
MOV CH,CL : menyalin CL ke CH
MOV AX,CX : menyalin CX ke AX
MOV SP,BP : menyalin BP ke SP
MOV SI,DI : menyalin DI ke SI
MOV BX,ES : menyalin ES ke BX
Pengalamatan Immediate berarti data secara langsung mengalami opcode
heksadesimal dalm memori. Merupakan data konsten, sedangkan data yang
ditransfer dari register adalah data variable.

Int (Interrupt)
DOS interrupt yaitu Int yang disediakan oleh DOS (disk operating system), yang
termasuk interrupt DOS adalah Interrup diatas Int 1F hwxa. Mis; Int 20h, Int 21h
a. Int 20h
Tugas nya adalah memberhentikan proses computer terhadap suatu program COM
b. Int 21h service 02h
Memiliki banyak tugas, yang dibagi-bagi menjadi beberapa bagian. Untuk
memanggil bagian-bagian itu, perlu menyertakan nomor bagiannya yang disebut
juga dengan service number. Int 21h bertugas mencetak sebuah huruf ke layar yaitu
Int 21h service 02h dengan beberapa syarat:
- Register AH, harus berisi service number dari Int 21h yang akan dijalankan (02h)
- Register DL, berisi bilangan Hexa dari karakter ASCII yang akan dicetak

C. PROGRAM ASSEMBLER

I. TUJUAN
Mahasiswa dapat mengetahui kegunaan intruksi ASSEMBLER dan menjalankan
program dengan intruksi ASSEMBLER dalam membuat sebuah program dalam
praktek mikroposesor yang dilaksanakan

II. TEORI SINGKAT


Buka command Promt dan ketik debug
Ketik A100, tekan enter
Buatlah program seperti contoh
Lalu periksa panjang program dengan mengetik perintah RCX, tekan enter
Isi kursor dengan angka 8, tekan enter
Kemudian simpan program yang baru tersebut dengan nama
Conton NCETAK.COM
Untuk melihat awal program ketik RIP, tekan enter
Isi kursor dengan angka 100, tekan enter
Kemudian ketik W, tekan enter
Untuk melaksanakan proses program ketik G, tekan enter
Untuk memproses sebaris program saja ketik T,tekan enter
Lalu ketik T kembali, tekan enter
III. HASIL PROGRAM

1. PROGRAM MENCETAK HURUF A LIMA KALI

Program diatas merupakan program untuk memunculkan huruf A sebanyak lima kali. MOV
CX,05 berarti perintah untuk mencetak huruf sebanyak lima kali. Sedangkan MOV DL,41
merupakan untuk mencetak huruf A, dimana angka 41 merupakan dalam bentuk hexa yang dalam
bentuk decimalnya berbentuk huruf A. lalu perintah int untuk mencetak program yang telah ditulis
diatas. Perintah loop 0103 merupakan perintah pengulangan untuk mencetak huruf A sebanyak
yang diiginkan tadi. Int 20 untuk mengakhiri program.

2. PROGRAM MENCETAK HURUF A-Z

Pada program diatas MOV CX,1a merupakan jumlah dari huruf dari A-Z yaitu 26 huruf. Lalu
perintah MOV DL, 41 merupakan untuk memunculkan huruf A. Dimana angka 41 hexa
merupakan huruf A. Perintah inc DL merupakan untuk menaikkan nilai dari isi register DL.
Sedangkan loop 0105 merupakan untuk mengulangi perintah untuk mencetak huruf sampai batas
yang telah dibuat pada MOV CX,1a.
3. PROGRAM MENCETAK ANGKA DAN HURUF DARI 0-1

Program ini sama dengan program yang no 2, yang diubah yaitu jumalh angka yang akan d
munculkan pada MOV CX, lalu mengubah isi dari register DL, yaitu MOV DL, 30 untuk
memunculkan angka 0.

4. PROGRAM MENCETAK HURUF C TUJUH KALI

Program ini sama dengan program no 1, yang diubah yaitu jumlah isi register CX, menjadi MOV
CX,07. Sehingga huruf yang dimunculkan yaitu 7 buah. Dan isi register DL menjadi MOV DL, 43
untuk memunculkan huruf C.
5. PROGRAM MENCETAK HURUF D EMPAT KALI

Program diatas sama dengan program sebelumnya, yang diubah yaitu isi register CX menjadi
MOV CX,04 untuk memunculkan 4 buah huruf dan register DL menjadi MOV DL,44 untuk
memunculkan huruf D.

6. PROGRAM MENCETAK HURUF C-Z

Program diatas sama dengan program no 2, yang diubah yaitu isi register CX menjadi MOV
CX,18 untuk memunculkan jumlah huruf 24. Lalu isi register DL menjadi MOV DL,43 untuk
memunculkan huruf C. Lalu kita menggunakan perintah inc DL, untuk menaikkan nilai register
DL dan menggunakan perintah loop untuk mengulangi perintah mencetak huruf
7. PROGRAM MENCETAK HURUF D-R

Program diatas sama dengan yang sebelumnya, yang diubah yaitu isi register CX menjadi MOV
CX,0F untuk memunculkan jumlah huruf 20 buah. Lalu merubah isi register DL menjadi MOV
DL,44 untuk memunculkan huruf D dan menggunakan perintah inc DL untuk menaikkan nilai
register DL serta perintah loop untuk mengulang mencetak huruf.

8. PROGRAM MENCETAK HURUF Z-A

Program diatas sama dengan program no 2, perbedaannya adalah pada register DL diubah menjadi
MOV DL,5A untuk menampilkan huruf Z. Lalu menggunakan perintah dec yang berfungsi untuk
mengurangi 1 nilai pada register DL. Sehingga nantinya program berurut mundur.
D. PERKALIAN

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan operasi perkalian dalam
assembler menggunakan perintah MUL dalam praktek mikroprosesor yang
dilaksanakan.

II. TEORI SINGKAT

Buka commond promt dan ketik debug


Ketik A100, kemudian tekan enter
Program operasi perkalian dari 1x1 sampai 9x1
Mov cx,09
Mov bh,01
Mov dl,bh
Add dl,30
Mov ah,02
Int 21
Mov dl,2a
Int 21
Mov dl,3d
Int 21
Mov al,01
Mul bh
Mov dl,al
Add dl,30
Mov ah,02
Int 21
Mov dl,0a
Int 21
Inc bh
Loop 0105
Int 21
III. HASIL PROGRAM
1. PERKALIAN MOV BH,03 DAN MOV AL,02

Program diatas merupakan program perkalian. Antara angka 3 dan 2. Untuk memunculkan angka
3 maka digunakan perintah MOV bh,03. Lalu untuk memunculkan tanda kali di gunakan bilangan
hexa yaitu 2A. Lalu perintah MOV DL,32 untuk memunculkan angka 2 dan perintah MOV DL,3d
untuk memunculkan tanda =. Lalu untuk melakukan operasi perkalian maka digunakan perintah
Mul bh. Sedangkan perintah 5 baris terakhir untuk menampilkan hasil perkalian.

2. MOV BH,02 DAN MOV AL,04

Program diatas sama dengan program sebelumnya. Yaitu perkalian Antara angka 2 dan 4. Untuk
memunculkan angka 2 maka digunakan perintah MOV bh,02. Lalu untuk memunculkan tanda kali
di gunakan bilangan hexa yaitu 2A. Lalu perintah MOV DL,34 untuk memunculkan angka 4 dan
perintah MOV DL,3d untuk memunculkan tanda =. Lalu untuk melakukan operasi perkalian maka
digunakan perintah Mul bh. Sedangkan perintah 5 baris terakhir untuk menampilkan hasil
perkalian.
3. PERKALIAN MOV BH,03 DAN MOV AL,03

Program diatas sama dengan program sebelumnya. Yaitu perkalian Antara angka 3 dan 3. Untuk
memunculkan angka 3 maka digunakan perintah MOV bh,03. Lalu untuk memunculkan tanda kali
di gunakan bilangan hexa yaitu 2A. Lalu perintah MOV DL,33 untuk memunculkan angka 3 dan
perintah MOV DL,3d untuk memunculkan tanda =. Lalu untuk melakukan operasi perkalian maka
digunakan perintah Mul bh. Sedangkan perintah 5 baris terakhir untuk menampilkan hasil
perkalian.

4. PERKALIAN UNTUK 1x2 SAMPAI 9x2 DAN 1x4 SAMPAI 10x4


E. LOMPAT/JUMP

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi jump atau lompat
dalam Program ASSEMBLER menggunakan perintah jump dalam praktek
mikroprosesor yang dilaksanakan.

II. TEORI SINGKAT


Intruksi lompatan pada suatu program menyebabkan program tersebut melompati
bagian tertentu pada program dan mengeksekusi intruksi yang di kehendaki .
Ada dua jenis intruksi lompat,yaitu lompat tak bersyarat (unconditional jump) dan
lompat bersyarat (conditional jump).
Jenis-jenis lompatan sebagai berikut :
1. JNE (Jump If Not Equal) perintah ini berlaku jika saat perbandingan kedua operand
tidak sama. Contohnya : CMP AX, 0102
JNE 0102
Perintah jump ini akan berlaku AX tidak sama dengan 0102,bila ternyata AX sama
dengan 0102,maka komputer akan melanjutkan kebaris program berikut
2. JLE (Jump If Less or Equal) perintah ini akan di proses bila pada saat perbandingan
perintah operand pertama lebih kecil atau sama dengan operand kedua.
Contoh : CMP BX,0A
JLE 0103
Perintah jump ini akan berlaku bila BX lebih kecil atau sama dengan 0A,bila lebih
kecil atau sama dengan operand kedua.
Contoh Program untuk menampilkan huruf A-Z masing-masing sebanyak 3x dengan
jumlah baris 12
MOV BX , 0000
MOV DL, 41
MOV CX, 0003
MOV AH , 02
INT 21
LOOP 0108
INC DL
CMP DL , 5B
JNE 0105
MOV DL,0D
MOV AH , 02
INT 21
MOV DL,0A
INT 21
INC BX
CMP BX, 000B
JLE 0103
INT 20

III. LANGKAH KERJA


a. Buka command promt dan ketik debug
C:\document and setting debug
b. Ketik A100, kemudian tekan enter
A100
c. Program berikut akan memperlihatkan operasi perkalian 1x1 sampai 9x1, ketik
program dibawah ini dengan menekan enter disetiap barisnya dan tekan enter 2
kali setelah baris terakhir dari program.

Pada empat baris pertama bertujuan melakukan pencetakan bilangan pertama,


menambahkan sebuah bilangan (0-9) 30h, agar angka yang diisikan pada DL
merupakan kode ASCII 0-9, 2Ah menghasilkan tanda ‘*’
MOV AL,01
MUL BH

Perintah diatas berarti mengalihkan isi register BL dengan isi register AL yang
telah diset dengan 1.
MOV DL,AL
ADD DL,30
MOV AH,02
INT 21
MOV DL,0A
INT 21

Perintah diatas mencetak hasil dari perkalian dan melakukan perpindahan baris
dengan ‘0A’ yang berfungsi sebagai alat untuk turun baris dan 0D yang membuat
kursor ke kiri.

Ketik program dibawah ini dengan menekan enter disetiap barisnya dan tekan
enter 2 kali setelah beris terakhir dari program

MOV BX , 0000
MOV DL, 41
MOV CX, 0003
MOV AH , 02
INT 21
LOOP 0108
INC DL
CMP DL , 5B
JNE 0105
MOV DL,0D
MOV AH , 02
INT 21
MOV DL,0A
INT 21
INC BX
CMP BX, 000B
JLE 0103
INT 20
d. Periksa panjang program dengan mengetik perintah RCX kemudian tekan enter
e. Isi kursor setelah tanda : dengan angka 8, tekan enter: 8
f. Kemudian simpan program yang baru tersebut dengan nama-NCETAK.COM
g. Untuk melihat awal program ketik RIP, kemudian tekan enter, isi kursor setelah
tanda : dengan angka 100, tekan enter-100
h. Kemudian ketik W, tekan enter-W
i. Untuk melaksanakan proses program gunakan G, kemudian tekan enter-G
j. Untuk memproses sebaris program saja ketik T, tekan enter –T

IV. HASIL PROGRAM


1. PROGRAM 0-9

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 30hexa yang berarti angka 0. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 3 kali.
Setelah itu perintah inc DL yaitu untuk menambah satu pada resgister DL. Lalu pada cmp DL,3a
merupakan perbandingan antara DL dengan 3a, apabila tidak sama maka akan melompat ke arah
MOV CX,03 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 0b pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,30

2. PROGRAM 1-9

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 31hexa yang berarti angka 1. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 3 kali.
Setelah itu perintah inc DL yaitu untuk menambah satu pada resgister DL. Lalu pada cmp DL,3a
merupakan perbandingan antara DL dengan 3a, apabila tidak sama maka akan melompat ke arah
MOV CX,03 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 08 pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,31
3. PROGRAM 2-6

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 32hexa yang berarti angka 2. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 5 kali.
Setelah itu perintah inc DL yaitu untuk menambah satu pada resgister DL. Lalu pada cmp DL,37
merupakan perbandingan antara DL dengan 37, apabila tidak sama maka akan melompat ke arah
MOV CX,05 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 07 pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,32

4. PROGRAM 9-0

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 39hexa yang berarti angka 9. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 3 kali.
Setelah itu perintah dec DL yaitu untuk mengurangi satu pada resgister DL. Lalu pada cmp DL,2f
merupakan perbandingan antara DL dengan 2f, apabila tidak sama maka akan melompat ke arah
MOV CX,03 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 0b pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,39

5. PROGRAM 6-2

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 36hexa yang berarti angka 6. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 5 kali.
Setelah itu perintah dec DL yaitu untuk mengurangi satu pada resgister DL. Lalu pada cmp DL,31
merupakan perbandingan antara DL dengan 31, apabila tidak sama maka akan melompat ke arah
MOV CX,05 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 06 pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,36

6. PROGRAM Z-A

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 5ahexa yang berarti huruf z. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 2 kali.
Setelah itu perintah dec DL yaitu untuk mengurangi satu pada resgister DL. Lalu pada cmp DL,40
merupakan perbandingan antara DL dengan 40, apabila tidak sama maka akan melompat ke arah
MOV CX,02 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 09 pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,5a

7. PROGRAM HURUF C-P

Pada program tersebut pada baris 1,2 dan 3 merupakan pernyataan pengisian ulang register bx,DL
dan CX. Lalu pada register DL diisi dengan angka 43hexa yang berarti huruf 3. Lalu perintah loop
0108 akan mengulang perintah untuk mencetak register DL sebanyak isi register CX yaitu 5 kali.
Setelah itu perintah inc DL yaitu untuk menambah satu pada resgister DL. Lalu pada cmp DL,51
merupakan perbandingan antara DL dengan 51, apabila tidak sama maka akan melompat ke arah
MOV CX,05 dan mengulangi proses percetakan diatas. Lalu perintah MOV DL,0d dan MOV
DL,0a untuk mengganti satu baris dibawahnya. Dan perintah inc bx berarti tambahan 1 pada bx
dan bandingkan bx dengan 06 pada perintah cmp, bila lebih kecil atau sama dengan, maka akan
terjadi loncatan kearah 0103 atau baris MOV DL,43
F. OPERASI STACK

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi stack dalam
Program ASSEMBELR menggunakan perintah stack dalam praktek mikroprosesor
yang dilaksanakan.
II. TEORI SINGKAT
Secara umum stack adalah tempat peletakan sementara isi register. Adapun contoh
pengefisiensienan operasi stack pada pembuatan program dapat dilihat pada program
dibawah
Contoh Program untuk menampilkan huruf A-Z diselingi spasi disetiap huruf.

Tidak memakai operasi stack

MOV AH,02
MOV CX,1A
MOV DL,41
INT 21
MOV BL,DL
MOV DL,20
INT 21
MOV DL,BL
INC DL
LOOP 0107
INT 20

Menggunakan operasi stack


MOV AH,02
MOV CX,1A
MOV DL,41
INT 21
PUSH DX
MOV DL,20
INT 21
POP DX
INC DL
LOOP 0107
INT 20
III. LANGKAH KERJA
Buka command promt dan ketik debug
C:\document and setting debug
Ketik A100, kemudian tekan enter
A100
1. Program berikut akan memperlihatkan operasi tanpa stack
MOV AH,02
MOV CX,1A
MOV DL,41
INT 21
MOV BL,DL
MOV DL,20
INT 21
MOV DL,BL
INC DL
LOOP 0107
INT 20
Penjelasan program :
MOV DL,BL dibaris kelima, kita melakukan penyelamatan isi register DL ke register
BL supaya isi register DL(41 hexa) tidak hilang, kemudian instal kembali pada baris
MOV DL,BL
Menggunakan operasi stack :
MOV AH,02
MOV CX,1A
MOV DL,41
INT 21
PUSH DX
MOV DL,20
INT 21
POP DX
INC DL
LOOP 0107
INT 20
Penjelasan program :
Baris MOV BL,DL dibaris kelima diatas diganti dengan PUSH DX yang berarti
melakukan operasi penyimpanan register stack, dan baris MOV DL,BL digant dengan
POP DX yang berarti mengambil isi stack
a. Periksa panjang program dengan mengetik perintah RCX kemudian tekan ente
b. Isi kursor setelah tanda : dengan angka 8, tekan enter: 8
c. Kemudian simpan program yang baru tersebut dengan nama-NCETAK.COM
d. Untuk melihat awal program ketik RIP, kemudian tekan enter, isi kursor setelah tanda
: dengan angka 100, tekan enter-100
e. Kemudian ketik W, tekan enter-W
f. Untuk melaksanakan proses program gunakan G, kemudian tekan enter-G
g. Untuk memproses sebaris program saja ketik T, tekan enter –T
IV. HASIL PROGRAM
1. PROGRAM 9-0

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 39 yang merupakan angka 9 dan pada register CX
berisi 10 buah. Untuk perintah tanpa menggunakan stack digunakan MOV BL,DL, kita melakukan
pengalamatan isi register DL ke register BL supaya isi register DL tidak hilang, kemudian instal
kembali pada baris MOV DL,BL untuk mengembalikan isi register DL. Lalu register DL diisi
dengan angka 20 hexa yang berarti spasi, setelah itu ditulis perintah int 21 untuk menampilkannya
di program. Selanjutnya perintah dec DL untuk mengurangi 1 dari isi register DL. Lalu akan
kembali loncatan ke alamat 0107 untuk mencetak kembali.
2. PROGRAM 8-3

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 38 yang merupakan angka 8 dan pada register CX
berisi 6 buah. Untuk perintah tanpa menggunakan stack digunakan MOV BL,DL, kita melakukan
pengalamatan isi register DL ke register BL supaya isi register DL tidak hilang, kemudian instal
kembali pada baris MOV DL,BL untuk mengembalikan isi register DL. Lalu register DL diisi
dengan angka 20 hexa yang berarti spasi, setelah itu ditulis perintah int 21 untuk menampilkannya
di program. Selanjutnya perintah dec DL untuk mengurangi 1 dari isi register DL. Lalu akan
kembali loncatan ke alamat 0107 untuk mencetak kembali.

3. PROGRAM Q-P

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 51 yang merupakan huruf q dan pada register CX
berisi 12 buah. Untuk perintah tanpa menggunakan stack digunakan MOV BL,DL, kita melakukan
pengalamatan isi register DL ke register BL supaya isi register DL tidak hilang, kemudian instal
kembali pada baris MOV DL,BL untuk mengembalikan isi register DL. Lalu register DL diisi
dengan angka 20 hexa yang berarti spasi, setelah itu ditulis perintah int 21 untuk menampilkannya
di program. Selanjutnya perintah dec DL untuk mengurangi 1 dari isi register DL. Lalu akan
kembali loncatan ke alamat 0107 untuk mencetak kembali.

4. PROGRAM 2-9

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 32 yang merupakan huruf q dan pada register CX
berisi 8 buah. Untuk perintah tanpa menggunakan stack digunakan MOV BL,DL, kita melakukan
pengalamatan isi register DL ke register BL supaya isi register DL tidak hilang, kemudian instal
kembali pada baris MOV DL,BL untuk mengembalikan isi register DL. Lalu register DL diisi
dengan angka 20 hexa yang berarti spasi, setelah itu ditulis perintah int 21 untuk menampilkannya
di program. Selanjutnya perintah inc DL untuk menambah 1 dari isi register DL. Lalu akan
kembali loncatan ke alamat 0107 untuk mencetak kembali.
5. PROGRAM 0-4

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 30 yang merupakan huruf 0 dan pada register CX
berisi 5 buah. Untuk perintah menggunakan stack digunakan push dx, untuk perintah push harus
digunakan register 16 bit. Kemudian instal kembali pada baris pop dx, untuk mengembalikan isi
register DL. Lalu register DL diisi dengan angka 20 hexa yang berarti spasi, setelah itu ditulis
perintah int 21 untuk menampilkannya di program. Selanjutnya perintah inc DL untuk menambah
1 dari isi register DL. Lalu akan kembali loncatan ke alamat 0107 untuk mencetak kembali.

6. PROGRAM O-A

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 4f yang merupakan huruf O dan pada register CX
berisi 15 buah. Untuk perintah menggunakan stack digunakan push dx, untuk perintah push harus
digunakan register 16 bit. Kemudian instal kembali pada baris pop dx, untuk mengembalikan isi
register DL. Lalu register DL diisi dengan angka 20 hexa yang berarti spasi, setelah itu ditulis
perintah int 21 untuk menampilkannya di program. Selanjutnya perintah dec DL untuk
mengurangi 1 dari isi register DL. Lalu akan kembali loncatan ke alamat 0107 untuk mencetak
kembali.

7. PROGRAM 3-9

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 33 yang merupakan angka 3 dan pada register CX
berisi 7 buah. Untuk perintah menggunakan stack digunakan push dx, untuk perintah push harus
digunakan register 16 bit. Kemudian instal kembali pada baris pop dx, untuk mengembalikan isi
register DL. Lalu register DL diisi dengan angka 20 hexa yang berarti spasi, setelah itu ditulis
perintah int 21 untuk menampilkannya di program. Selanjutnya perintah inc DL untuk menambah
1 dari isi register DL. Lalu akan kembali loncatan ke alamat 0107 untuk mencetak kembali.

8. PROGRAM x-c

Pada program tersebut pada baris 1, 2, 3 dan baris 4 merupakan perintah untuk mengisi register CX
dan DL. Lalu pada register DL diisi angka hexa 78 yang merupakan huruf x dan pada register CX
berisi 22 buah. Untuk perintah menggunakan stack digunakan push dx, untuk perintah push harus
digunakan register 16 bit. Kemudian instal kembali pada baris pop dx, untuk mengembalikan isi
register DL. Lalu register DL diisi dengan angka 20 hexa yang berarti spasi, setelah itu ditulis
perintah int 21 untuk menampilkannya di program. Selanjutnya perintah dec DL untuk
mengurangi 1 dari isi register DL. Lalu akan kembali loncatan ke alamat 0107 untuk mencetak
kembali.

G. LANJUTAN OPERASI STACK

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi stack dalam
Program ASSEMBELR menggunakan perintah stack dalam praktek mikroprosesor
yang dilaksanakan.

II. TEORI SINGKAT


Secara umum stack adalah tempat peletakan sementara isi register. Adapun contoh
pengefisiensienan operasi stack pada pembuatan program dapat dilihat pada program
dibawah
Contoh Program memakai stack untuk mencetak urutan angka pinggir 1-9 dan huruf
dari A-Z
MOV CX,0009
MOV DL,31
MOV AH,02
INT 21
PUSH DX
PUSH CX
MOV CX,001A
MOV DL,61
INT 21
INC DL
LOOP 0110
MOV DL,0D
INT 21
MOV DL,0A
INT 21
POP CX
POP DX
INC DL
LOOP 0107
INT 20
Contoh program memakai stack untuk mencetak urutan angka pinggir 1-5 dan huruf
dari O-A
MOV CX,0005
MOV DL,31
MOV AH,02
INT 21
PUSH DX
PUSH CX
MOV CX,0F
MOV DL,4F
INT 21
DEC DL
LOOP 0110
MOV DL,0D
INT 21
MOV DL,0A
INT 21
POP CX
POP DX
INC DL
LOOP 0107
INT 20
III. LANGKAH KERJA
Buka command promt dan ketik debug
C:\document and setting debug
Ketik A100, kemudian tekan enter
A100
Program berikut akan memperlihatkan operasi stack
MOV CX,0009
MOV DL,31
MOV AH,02
INT 21
PUSH DX
PUSH CX
MOV CX,001A
MOV DL,61
INT 21
INC DLLOOP 0110
MOV DL,0D
INT 21
MOV DL,0A
INT 21
POP CX
POP DX
INC DL
LOOP 0107
INT 20
Penjelasan program :
a. PUSH DX yang berarti melakukan operasi penyimpanan register stack dan
POP DX yang berarti mengambil isi stack
b. Periksa panjang program dengan mengetik perintah RCX kemudian tekan
enter
c. si kursor setelah tanda : dengan angka 8, tekan enter: 8
d. Kemudian simpan program yang baru tersebut dengan nama-NCETAK.COM
e. Untuk melihat awal program ketik RIP, kemudian tekan enter, isi kursor
setelah tanda : dengan angka 100, tekan enter-100
f. Kemudian ketik W, tekan enter-W
g. Untuk melaksanakan proses program gunakan G, kemudian tekan enter-G
h. Untuk memproses sebaris program saja ketik T, tekan enter –T

IV. HASIL PROGRAM


1. LATIHAN 1

Pada program tersebut register CX memiliki 9 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 10 buah dan
MOV DL,30 untuk mencetak angka 0. Perintah inc DL untuk menambah 1 isi register DL,30.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.
2. LATIHAN 2

Pada program tersebut register CX memiliki 5 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 9 buah dan
MOV DL,41 untuk mencetak huruf A. Perintah inc DL untuk menambah 1 isi register DL,41.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.

3. LATIHAN 3

Pada program tersebut register CX memiliki 9 buah baris pengulangan , MOV DL,30 untuk
menampilkan angka 0 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 13 buah dan
MOV DL,4f untuk mencetak huruf O. Perintah dec DL untuk mengurangi 1 isi register DL,4f.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,30 dan loop 0107 untuk mencetak ulang pada alamat
0107.

4. LATIHAN 4

Pada program tersebut register CX memiliki 7 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 7 buah dan
MOV DL,33 untuk mencetak angka 3. Perintah inc DL untuk menambah 1 isi register DL,33.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.
5. LATIHAN 5

Pada program tersebut register CX memiliki 9 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 9 buah dan
MOV DL,41 untuk mencetak huruf A. Perintah inc DL untuk menambah 1 isi register DL,41.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.

6. LATIHAN 6

Pada program tersebut register CX memiliki 8 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 10 buah dan
MOV DL,39 untuk mencetak angka 9. Perintah dec DL untuk mengurangi 1 isi register DL,39.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.

7. LATIHAN 7

Pada program tersebut register CX memiliki 5 buah baris pengulangan , MOV DL,31 untuk
menampilkan angka 1 dan perintah MOV ah,02 dan int 21 untuk mencetaknya. Push dx berfungsi
untuk operasi stack dan untuk pengembaliannya menggunakan operasi pop dx pada bagian akhir
program. Lalu push CX untuk operasi stack dan untuk pengembaliannya digunakan perintah push
CX pada bagian akhir program. Lalu MOV CX pada bagian tengah program berisi 21 buah dan
MOV DL,78 untuk mencetak huruf x. Perintah dec DL untuk mengurangi 1 isi register DL,78.
Untuk mencetak baris baru digunakan perintah MOV DL,0d dan MOV DL,0a. Terakhir perintah
inc DL untuk menambah isi register DL,31 dan loop 0107 untuk mencetak ulang pada alamat
0107.
H. PENJUMLAHAN, PENGURANGAN, dan PERKALIAN

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi penjumlahan
pengurangan dan perkalian dalam Program ASSEMBELR dalam praktek
mikroprosesor yang dilaksanakan.

II. TEORI SINGKAT


Operasi penjumlahan
MOV BH,01
MOV DL,BH
ADD DL,30
MOV AH,02
INT 21
INT 20
Operasi pengurangan
MOV BH,64
MOV DL,BH
SUB DL,31
MOV AH,02
INT 21
INT 20
Operasi perkalian
MOV BL,05
MOV CL,10
MOV AL,CL
MUL BL
MOV DX,AX
MOV AH,02
INT 21
INT 20
III. HASIL PROGRAM
1. LATIHAN PENJUMLAHAN

Ketiga program diatas merupakan program penjumlahan yang menggunakan perintah ADD.
Perintah MOV bh merupakan isi register yang akan dikali dengan isi register ADD DL pada
program tersebut. Dengan memasukkan angka dalam bentuk hexa, maka akan keluaar hasilnya
dalam bentuk karakter atau hexa.

2. LATIHAN PENGURANGAN

Ketiga program diatas merupakan operasi pengurangan dengan memakai perintah SUB. Bentuk
dari programnya sama dengan operasi penjumlahan yang menggunakan register bh dan DL
sebagai operasi pengurangan nya.
3. LATIHAN PERKALIAN

Ketiga program diatas merupakan operasi perkalian yang menggunakan perintah MUL.
Menggunakan register BL dan CL sebagai input dari yang akan dikalikan.

I. OPERASI BOOLEAN

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi boolean dalam
Program ASSEMBELR dalam praktek mikroprosesor yang dilaksanakan.
II. TEORI SINGKAT
AND
MOV DL,61
MOV AH,02
INT 21
AND DL,DF
INT 21
INT 20

OR
MOV DL,41
MOV AH,02
INT 21
OR DL,20
INT 21
INT 20

XOR
MOV DL,79
MOV AH,02
INT 21
XOR DL,41
INT 21
INT 20

NOT
MOV DL,63
MOV AH,02
INT 21
NOT DL
INT 21
INT 20
III. HASIL PROGRAM
1. LATIHAN OR

Program diatas merupakan perintah OR, dimana isi register DL nantinya akan di OR kan dengan
perintah OR DL,(isi register).

2. LATIHAN AND

Program diatas merupakan perintah AND, dimana isi register DL nantinya akan di AND kan
dengan perintah AND DL,(isi register).
3. LATIHAN XOR

Program diatas merupakan perintah XOR, dimana isi register DL nantinya akan di XOR kan
dengan perintah XOR DL,(isi register).

4. LATIHAN NOT

Program diatas merupakan perintah NOT, dimana isi register DL nantinya akan di NOT kan
dengan perintah NOT.
J. ROTASI

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi rotasi dalam
Program ASSEMBELR dalam praktek mikroprosesor yang dilaksanakan.
II. TEORI SINGKAT
Operasi rotasi atas sebuah operand akan menggeser bit-bit operand tersebut ke kiri
atau kekanan.
a. Rotasi biasa
1. Rotasi ke kiri (ROL) akan menggeser bit paling kiri ke bit paling kanan dan
juga menyalinnya ke bit carry flag (C).
2. Rotasi ke kanan (ROR) akan menggeser bit paling kanan ke bit paling kiri dan
juga menyalinnya ke bit carry flag (C).
b. Rotasi melalui carry
1. Rotasi ke kiri melalui carry (RCL)akan menggeserbit paling kiri ke carry (C)
dan menggeser carry ke bit paling kanan.
Sintaks untuk operasi ini sebagai berikut , contoh :
ROL AH,CL : isi register AH dirotasikan kekiri 2 langkah
ROR AH,CL : isi register AH dirotasikan ke kanan 2 langkah
RCL AH,CL : isi register AH dirotasikan melalui carry ke kiri 2 langkah
Operasi ROL
MOV AH,02
MOV CL,02
MOV DL,71
INT 21
ROL DL,CL
INT 21
INT 20

Operasi ROR
MOV AH,02
MOV CL,02
MOV DL,71
INT 21
ROR DL,CL
INT 21
INT 20

Operasi RCL
MOV AH,02
MOV CL,02
MOV DL,71
INT 21
RCL DL,CL
INT 21
INT 20

Operasi RCR
MOV AH,02
MOV CL,02
MOV DL,71
INT 21
ROL DL,CL
INT 21
INT 20
III. HASIL PROGRAM
1. LATIHAN ROL

Perintah ROL merupakan operasi dengan rotasi ke kiri, yang akan menggeser bit paling kiri ke bit
paling kanan dan juga menyalinnya di bit carry flag(C). MOV DL,(isi register) merupakan
bilangan yang akan d ROL kan pada perintah ROL DL,CL.
2. LATIHAN ROR

Perintah RO merupakan operasi dengan rotasi ke kanan, yang akan menggeser bit paling kanan ke
bit paling kiri dan juga menyalinnya di bit carry flag(C). MOV DL,(isi register) merupakan
bilangan yang akan d ROR kan pada perintah ROR DL,CL.

3. LATIHAN RCL

Perintah RCL merupakan rotasi ke kiri melalui carry (RCL) akan menggeser bit paling kiri ke
carry (C) dan menggeser carry ke bit paling kanan. Perintah untuk operasi ini yaitu isi register DL
dirotasi dengan perintah RCL DL,CL.

4. LATIHAN RCR
Program diatas menggunakan perintah RCR merupakan rotasi ke kanan melalui carry (RCR) akan
menggeser bit paling kanan ke carry (C) dan menggeser carry ke bit paling kiri. Perintah untuk
operasi ini yaitu isi register DL dirotasi dengan perintah RCR DL,CL.

K. PERGESERAN BIT

I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi pergeseran bit
dalam Program ASSEMBELR dalam praktek mikroprosesor yang dilaksanakan.
II. TEORI SINGKAT
Operasi pergeseran atas sebuah operand akan menggeser bit-bit operand tersebut
kekiri atau kekanan.
1. Geser kiri secara logikal (SHL) akan memberikan nilai ‘0’ pada bit paling
kanan dan memindahkan bit paling kiri ke bit carry flag (C).
2. Geser kanan secara logikal (SHR) akan memberikan nilai ‘0’ pada bit paling
kiri dan memindahkan bit paling kanan ke bit carry dlag (C).
Sintaks untuk operasi pergeseran bit :
SHL AH,CL : isi register AH digeser (secara logika) ke kiri 2 langkah
SHR AH,CL : isi register AH digeser (secara logika) ke kanan 2 langkah
Operasi SHL
MOV AH,02
MOV CL,02
MOV DL,6D
INT 21
SHL DL,CL
INT 21
INT 20

Operasi SHR
MOV AH,02
MOV CL,02
MOV DL,6D
INT 21
SHR DL,CL
INT 21
INT 20

NEG
Bila operasi NEG dikenakan pada sebuah operand, seluruh bit operand
tersebut dikenai operasi komplemen -2 = komplemen -1+1.
Contoh :
MOV DL,64
MOV AH,02
INT 21
NEG DL
INT 21
INT 20
III. HASIL PROGRAM
1. PROGRAM SHL

Program diatas yaitu merupakan operasi SHL. Isi register DL akan digeser kekiri sebanyak dua
langkah dengan menggunakan operasi SHL DL,CL.

2. PROGRAM SHR

Program diatas yaitu merupakan operasi SHR. Isi register DL akan digeser kekanan sebanyak dua
langkah dengan menggunakan operasi SHR DL,CL.
3. PROGRAM NEG

Pada program diatas, isi register DL akan dilakukan operasi NEG dengan menggunakan perintah
NEG DL. Maka program akan menampilkan program yang telah di NEG kan.

4. PROGRAM SAR

Program diatas merupakan program operasi SAR. Isi register DL akan di SAR kan dengan
perintah SAR DL,CL. Dimana isi register DL digeser(secara aritmatika) ke kanan 2 langkah.

Anda mungkin juga menyukai