You are on page 1of 13

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER

“LATIHAN SOAL”

KELAS : TEK B P2
NAMA : MUH.YUSRIL ABNI
NIM : J3D117164

PROGRAM KEAHLIAN TEKNIK KOMPUTER


PROGRAM DIPLOMA
INSTITUT PERTANIAN BOGOR
BOGOR
2018
I. Tujuan Percobaan

Mahasiswa mampu membuat dan memahami program assembly dengan


perintah diantaranya operasi aritmatika, mencetak kalimat dengan atribut, dan
memanipulasi bit dengan menggunakan gerbang logika.

II. Teori Penunjang

II.1 Mencetak Kalimat

Pada saat terjadi intrupsi 21h maka pertama-tama yang dilakukan


komputer adalah melihat isi atau nilai apa yang terdapat pada register AH.
Misalkan bila nilai AH adalah 2 maka komputer akan mencetak sebuah
karakter, berdasarkan kode ASCII yang terdapat pada register DL. Bila nilai
pada register AH bukanlah 2, pada saat dilakukan intrupsi 21h maka yang
dikerjakan oleh komputer akan lain lagi.
Dengan demikian kita bisa mencetak sebuah karakter yang diinginkan
dengan meletakkan sebuah karakter yang diinginkan dengan meletakkan
angka 2 pada register AH dan meletakkan kode ASCII dari karakter yang
ingin dicetak pada register DL sebelum menghasilkan intrupsi 21h.
II.2 Operasi Aritmatika

Untuk menambah dalam bahasa assembler digunakan perintah ADD,


ADC, dan INC. Perintah ADD digunakan dengan syntax:

ADD Tujuan,Asal.

Perintah ADD iini akan menambah nilai pada Tujuan dan Asal. Hasil
yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan
instruksi Tujuan:=Tujuan + Asal.

Perlu diperhatikan bahwa pada perintah ADD ini antara Tujuan dan
Asal harus mempunyai daya tamung yang sama, misalnya register AH(8 bit)
dan AL(8 bit), AX(16 bit), dan BX(16 bit).

Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil


pertambahan Tujuan dan Asal ditambah lagi dengan carry flag
(Tujuan:=Tujuan+Asal+Carry). Seperti yang diketahui bahwa satu register
hanya mampu menampung 16 bit, maka setiap pertambahan yang memiliki
angka berbasis 16 bit dapat digunakan perintah ADC unutk memecahkannya.
Hasil penjumlahan akan ditampung pada register AX:CX yaitu
ACF13568h. Adapun flag-flag yang terpengaruh oleh perintah ADD dan ADC
ini adalah CF,PF,AF,ZF,SF, dan OF.

Perintah INC (Increment) digunakan khusus untuk pertambahan dengan


1. Perintah INC hanya menggunakan 1 byte memori, sedangkan perintah
ADD dan ADC menggunakan 3 byte. Oleh sebab itu bila ingin melakukan
operasi pertambahan dengan 1 byte memori gunakanlah INC.

Nilai pada tujuan akan ditambah dengan 1, seperti perintah


Tujuan:=Tujuan+1 dalam turbo pascal. Tujuan dapat berupa suatu register
maupun memori. Contoh: perintah INC AL akan menambah nilai di register
AL denga 1. Adapun flag yang terpengaruh oleh perintah ini adalah OF, SF,
ZF, AF, dan PF.

2.2.1 Operasi Pengurangan

Untuk operasi pengurangan dapat digunakan perintah SUB dengan


syntax:

SUB Tujuan,Asal

Perintah SUB akan mengurangkan nilai pada Tujuan dengan Asal. Hasil
yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan
instruksi Tujuan:=Tujuan-Asal.

Untuk me-nolkan suatu register bisa dikurangkan dengan dirinya sendiri


seperti SUB AX,AX.

2.2.2 Operasi Perkalian

Untuk perkalian bisa digunakan perintah MUL dengan syntax:

MUL Sumber

Sumber disini dapat berupa suatu register 8 bit (contoh: BL,BH,…),


register 16 bit (contoh: BX,DX,…) atau suatu variabel. Ada 2 kemungkinan
yang akan terjadi pada perintah MUL ini sesuai dengan jenis perkalian 8 bit
atau 16 bit.
Bila Sumber merupakan 8 bit seperti MUL BH maka komputer akan
mengambil nilai yang terdapat pada BH dan nilai pada AL untuk dikalikan.
Hasil yang didapat akan selalu disimpan pada register AX. Bila Sumber
merupakan 16 bit seperti MUL BX maka komputer akan mengambil nilai
yang terdapat pada BX dan nilai pada AX untuk dikalikan. Hasil yang didapat
akan disimpan pada register DX dan AX (DX:AX), jadi register DX
menyimpan Word tingginya dan AX menyimpan Word rendahnya.

2.2.3 Operasi Pembagian

Operasi pada pembagian pada dasarnya sama dengan perkalian. Untuk


operasi pembagian digunakan perintah DIV dengan syntax:

DIV Sumber

Bila Sumber merupakan operand 8 bit seperti DIV BH, maka komputer
akan mengambil nilai pada register AX dan membaginya dengan nilai BH.
Hasil pembagian 8 bit ini akan disimpan pada register AL dan sisa dari
pembagian akan disimpan pada register AH.

Bila Sumber merupakan operand 16 bit seperti DIV BX, maka


komputer akan mengambil nilai yang terdapat pada register DX:AX dan
membaginya dengan nilai BX. Hasil pembagian 16 bit ini akan disimpan pada
register AX dan sisa dari pembagian akan disimpan pada register DX.

II.3 Memanipulasi bit dan logika

2.3.1 Gerbang NOT

Operator NOT akan meng-invers suatu nilai seperti yang terlihat pada
Tabel 1.

Tabel 1 Kebenaran Gerbang Operator NOT

A Ā
0 1
1 0
Operasi NOT di dalam assembler, digunakan dengan syntax:

NOT Tujuan,Sumber

Hasil dari operasi not ini akan disimpan pada Tujuan, sebagai contoh,
intruksi NOT AL,3Fh akan menghasilkan nilai C0h bagi AL.

2.3.2 Gerbang AND

Operator AND akan menghasilkan nilai nol bila salah satu operand-nya
bernilai nol, dan hanya akan bernilai satu bila kedua operand-nya bernilai
satu.
Tabel 2 Operator AND

A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

Operasi AND di dalam assembler digunakan dengan syntax:


AND Tujuan,Sumber
Hasil dari operasi AND ini akan disimpan ada Tujuan, sebagai contoh,
intruksi:
MOV AL,3Fh
MOV BL,1Ah
AND AL,BL
Perintah di atas akan menghasilkan nilai 1A bagi register AL.
2.3.3 Gerbang OR

Operator logika OR akan menghasilkan nilai nol bila kedua operand-


nya bernilai nol, dan satu bila salah satunya bernilai satu.

Tabel 3 Operator OR

A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1
Operasi OR di dalam assembler, digunakan dengan syntax:

OR Tujuan,Sumber

Hasil dari operasi OR akan disimpan pada Tujuan, sebagai contoh,


intruksi:

MOV AL,3Fh

MOV BL,1Ah

OR AL,BL

Hasil operasi OR di atas akan menghasilkan nilai 3F bagi register AL.

2.3.4 Gerbang XOR

Operator XOR akan menghasilkan nol untuk dua nilai yang sama
nilainya, dan satu untuk yang berbeda.

Tabel 4 Operator XOR

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

Operasi XOR di dalam assembler, digunakan dengan syntax:

XOR Tujuan,Sumber

Hasil dari operasi XOR akan disimpan pada Tujuan, sebagai contoh
intruksi:

MOV AX,0A12h

XOR AX,AX

Hasil operasi XOR di atas pasti akan menghasilkan nilai 0 bagi register AX.
III. Listing Program
1. Gerbang NOT
A .MODEL SMALL
.CODE
ORG 100H

MOV AX,0BCDH
MOV BX,20H
ADD AX,BX

END

B.MODEL SMALL
.CODE
ORG 100H

MOV AX,22H
MOV BX,12H
MOV CX,30H
SUB AX,BX
SUB CX,BX
MUL CX

END

C.MODEL SMALL
.CODE
ORG 100H

MOV AX,30H
MOV BX,5H
DIV BX

END

2. Gerbang AND
.MODEL SMALL
.CODE
ORG 100H
DATA:JMP PROSES
KAL0 DB 'ANIMASI SEBENARNYA MERUPAKAN PENYESUAIAN
DARI KATA ‘ANIMATION’ YANG BERASAL DARI KATA DASAR ‘TO
ANIMATE’ DALAM KAMUS UMUM INGGRISINDONESIA BERARTI
MENGHIDUPKAN. SECARA UMUM ANIMASI MERUPAKAN SUATU
KEGIATAN MENGHIDUPKAN, MENGGERAKKAN BENDA MATI DAN
SUATU BENDA MATI DIBERI DORONGAN, KEKUATAN,SEMANGAT DAN
EMOSI ITU',13,10, '$'
PROSES:

MOV AX,1300H
MOV BL,00100111B
MOV DL,3
MOV DH,2
MOV CX,327
LEA BP,KAL0
INT 10H
INT 20H
END DATA

3.Gerbang OR
.MODEL SMALL
.CODE
ORG 100H
PROSES:

MOV AX,1101b
MOV BX,1010b
MOV CX,1010b
MOV DX,1011b
AND AX,BX
XOR CX,DX
OR AX,CX

4.Operai XOR
.MODEL SMALL
.CODE
ORG 100H
PROSES:

MOV AX,0b
SHL AX,3
5.Operasi SHR
.MODEL SMALL
.CODE
ORG 100H
PROSES:

MOV AX,0b
SHR AX,4

IV. Alisa Program


Pada pemrograman ini akan membuat suatu program untuk mencetak suatu
huruf dapat dijabarkan sebagai berikut:
Model Small: Memberitahu memori yang akan digunakan.
Code : Akan memulai suatu segment.
ORG 100H : Syntax ini dijalankan dananya mulai offset 100H atau 256
byte.
MOV : Suatu perintah untuk memindahkan suatu data ke data
lain.
CL : Menggeser bit
SHR/SHL : menggeser ke kanan untuk SHR dan menggeser ke kiri
untuk SHL.
END : Merupakan perintah untuk mengakhiri suatu program.

pada laporan ini menggunakan aplikkasi emu 8086 yang digunakan


untuk mengetahui hasil dari program bahasa asembly.

Gambar 1 Penjumlahan

Gambar 1 mamasukkan nilai pada masing-masing kode register yang


telah di deklarasikan dengan AX,BX yang masing-masing register
mempunyai nilai yaitu AX 0BCDh dan BX 20h.
Gambar 2 Hasil Penjumlahan

Gambar 2 dengan menggunakan kode register ADD maka kode register


AX dan BX akan dijumlahkan kemudian di dapatlah BED sebagai hasil dari
penjumlahan keda kode register tersebut.

Gambar 3 pengurangan dan perkalian

Gambar 6 memasukkan nilai pada masing-masingkode register yang


telah disediakan,yaitu AX,BX dan CX

Gambar 4 hasil dari pemgurangan

Gambar 7 detelah memasukkan nilai register maka proses yang pertama


dilakukan adalah pengurangan,perintah yang akan di kerjakan ialah SUB
AX,BX dan CX,BX setelah mengurangkan kedua register tersebut maka
akan di dapatlah 10 dari pengurangan 22-12 dan IE dari pengurangan 30-12.
.

Gambar 5 Hasil Perkalian


Gambar 5 setelah dilakukan penguran 2 kode register dengan hasil yang
berbeda di setiap pengurangan yang dilakukan,kemudian kedua hasil
pengurangan dikalikan dan didapatlah 1E0 sebagai hasil dari penguran dari
kedua hasil pengurangan .

Gambar 6 pembagian

Gambar 6 memasukkan nilai pada setiap register dengan nilai yang


berbeda-beda, yaitu MOV AX 30h dan MOV BX 5h

Gambar 7 hasil dari pembagian

Gambar 7 setelah memasukkan nilai pada setiap registernya maka akan


dilakukan perintah untuk membagi kedua nilai register tersebut, yaitu DIV B
dan di dapatlah hasil dar kedua nilai register adalah 9.

Gambar 8 Hasil dari kalimat yang diberi atribut


Gambar 8 dengan cara memasukkan kalimat pada program kemudian
kalimat tersebut akan dimasukkan keregister AX setelah kalimat dimasukkan
ke reister maka kalimat di beri atribut dengan kode register MOV BL
00100111b.agar setiap kalima mempunyai atribut maka perintah yang akan
dilakukan adalah memasukkan jumlah huruf (termasuk spasi) kedalam
perinta,yaitu MOV CX,327 .

Gambar 9 AND,OR dan XOR

Gambar 9 memasukkan nilai pada amsung masig kode register dan pada
program ini terdapat 4 kode register yang telah disediakan, yaitu AX,BX,CX
dan DX.

ax cx

bx dx

Gambar 10 hasil AND dan XOR

Gambar 10 setelah memasukkan.2 kode tersebut maka proses yang


akan dikerjakan lebih aal dengan mengerjakan perintah AND dan proses
kedua adalah XOR.
ax

bx

dx

cx

Gambar 11hasil dari OR

Gambar 7 kemudian hasil XOR akan kembali di operasikan oleh


register NOT.

Gambar 12 SHL dan SHR

Gambar 12 memasukkan angka yang ingin di geser SHR atau SHL


kemudian memberi perintah SHR 3 dan SHR 4 untuk menggeser bit dan
pergeseran ingin dilakukan 3 untuk SHL dan 4 intuk SHR,bit akan digeser 3
bit kekiri untuk SHL dan 4 bit ke kanan untuk SHL

V. Kesimpulan
Pada pembuatan prgram pencetak huruf dapat disimpilakan bahwa DL
adalah kode ASCII dan 21h dan 20h sebagai kode untuk mencetak dan
menghentikan program agar tidak terjadi kesalahan pada program.

VI. Daftar Pustaka

Novianty, Inna, Ridwan Siskandar dan Novita Galih P. 2018. Modul


Panduan Praktikum Organisasi Komputer. Bogor: Institut Pertanian Bogor.

You might also like