MIKRO
MIKRO
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
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
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.
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.
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.
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.
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.
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.
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.
I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi jump atau lompat
dalam Program ASSEMBLER menggunakan perintah jump dalam praktek
mikroprosesor yang dilaksanakan.
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
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
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.
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
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.
I. TUJUAN
Mahasiswa dapat menerapkan konsep dan menjalankan Operasi stack dalam
Program ASSEMBELR menggunakan perintah stack dalam praktek mikroprosesor
yang dilaksanakan.
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.
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.