Anda di halaman 1dari 14

LAPORAN PRAKTIKUM

BAHASA RAKITAN

Disusun Oleh :

Nama : Haura Ahnaf

NIM : 09011182025011

Jurusan : Sistem Komputer

Dosen : Aditya P. P. Prasetyo, S. Kom., M.T.

LABORATORIUM ROBOTIKA DAN SISTEM KENDALI


FAKULTAS ILMU KOMPUTER
UNIVERSITAS SRIWIJAYA
INDRALAYA 2022
PRAKTIKUM I

PROSES TRANSFER DATA

A. TUJUAN
• Mengerti dan memahami prinsip dasar dari proses transfer data
• Mengerti dan memahami setiap instruksi yang digunakan dalam proses
transfer data
• Mampu menganalisa setiap data yang dihasilkan

B. PERALATAN YANG DIGUNAKAN


• Seperangkat PC
• Software Command Prompt
• Modul Praktikum Bahasa Rakitan

C. PROSEDURE PRAKTIKUM
• Salinlah program 1
• Amatilah output yang ditampilkan
• Buat Algoritma program
• Buat Flowchart program
• Buat Analisis program
• Buat Kesimpulan

1
D. DASAR TEORI

Mikroprosesor 8086 adalah mikroprosesor yang memiliki lebar bus


data 16 bit, sedangkan bus alamatnya 20 bit atau 1 Mbyte. Mikroprosesor
8086 memiliki beberapa jenis register, yang terbagi dalam lima kelompok,
yaitu :
a. Segmen Register
Register yang termasuk dalam register ini adalah register CS, DS, ES
dan SS, yang masing-masing merupakan register 16 bit. Registerregister
dalam kelompok ini digunakan untuk menunjukkan alamat dari suatu
segmen.
Register CS (code Segmen) digunakan unuk menunjukkan tenpat dari
sgmen yang aktif., sedangkan register SS (stak segmen) menunjukkan
letak dari segmen yang yang digunakan oleh stak
Register DS (data segmen) biasanya digunakan untuk menunjukkan
tempat segmen dimana data –data pada program disimpan.
Register ES (extra segmen) yang biasanya digunakan untuk
menunjukkan suatau alamat dimemori, misalkan alamat memori video.

b. Pointer dan Indeks Register


Register yang termasuk dalam register ini adalah SP, BP, SI dan DI,
yang masing-masing terdiri dari 16 bit. Register-register dalam
kelompok ni digunakan sebagai penunjuk atau pointer terhadap suatu
lokasi di memori.
Register SP (stak pointer) yang berpasangan dengan register SS
(SS:SP) digunakan untuk menunjukkan alamat dar stak, sedangkan
register BP (base pointer yang bepsangan dengan registers SS (SS:
BP), mencatat suatu alamat di memori tempat data.
Register SI ( sourse Index ) dan register DI (destination index )
biasanya digunakan pada opersi string dengan mengakses secara

2
langsung pada alamat di memori yang ditunjukkan oleh kedua register
ini.
c. General Purpose Register
Register yangtermasuk dalam kelompok ini adalah AX (AH dan AL),
BX ( BH dan BL), CX (CH dan CL) dan DX (DH dan DL). Semua
register tersebut adalah register 16 bit dengan asumsi 8 bit tinggi
diwakili oleh High dan 8 bit endah diwakili oleh LOW.
Register AX secara khusus digunakan pada operasi aritmatika terutama
dalam opersi pembagian dan penguragan
Register BX biasanya digunakan untuk menunukkan suatu alamad
offset dari suatu segmen
Register CX secara khusus digunakan pada operasi looping dimana
register ini menentukan berapa banyaknya looping yang akan terjadi.
Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit
d. Index Pointer Register
Register PI berpasangan dengan CS (CS : IP), menunjukkan alamat
memori tempat dari instruksi (perintah) selanjudnya yang akan
dieksekusi. Register IP juga merupakan register16 bit.
e. Flag Register
Sesuai dengan namanya register ini menunjukkan kondisi dari suatu
keadaan register. Karena setiap keadaan dapat digunakan satu bit saja,
maka sesuai dengan julah bitnya, register ini mampu mencatat sampai
16 bit.
Adapun flag register adalah :
• OF (Over Flow Flag), jika terjadi over flow pada operasi aritmatika,
bit ini akan bernilai 1
• SF (Sign Flag), jika digunakan bilangan bertanda, bit ini akan
bernilai 1
• ZF (Zerro Flag), jika hasil operasi menghasilkan nol, bit ini akan
bernilai 1

3
• 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 jika bilangan yang dihasilkan merupakan
bilangan genap dan akan bernilai 0 jika bilangan yang dihasilkan
merupakan bilangan ganjil.
• DF (Direction Flag), digunakan pada operasi string untuk
menunjukkan arah proses.
• IF (Interrupt Enable Flag), CPU akan mengabaikan interupsi yang
terjadi jika flag ini bernilai 0
• TF (Trap Flag), digunakan untuk debugging, dengan operasi step by
step
• AF (Auxiliary Flag), digunakan pada operasi BCD

Proses transfer data dari suatu mikroprosesor adalah suatu proses


perpindahan data atau menyalin data, tanpa merubah isi dari alamat data
yang telah dipindahkan. Dengan kata lain tidak ada perubahan isi dalam
bentuk apapun dari suatu register yang telah disalin. Ada lima cara yang
digunakan dalam proses tranfer data, yaitu :
• Pengalamatan Segera
Teknik pengalamatan segera dilakukan dengan memberikan niali kesuatu
alamat dengan segera tanpa perantara, biasanya mengunakan tanda #.
Sebagai contoh :
MOV A, #43H ; Data 43H diisikan ke Register A
• Pengalamatan Langsung
Teknik pengalamatan langsung dilakukan dengan cara menyebut lokasi
memori tempat data tersebut berada.
Sebagai contoh instruksi :
MOV 30H,#40H : data 40H diisikan ke alamat 30H
MOV A,30H : Data pada alamat 30H, yaitu 40H diisikan ke alamat ke A

4
• Pengalamatan Tak Langsung
Teknik pengalamatan tidak langsung adalah suatu mode pengalamatan
yang dilaksakan dengan cara menitipkan lokasi suatu memori pada
regiater penunjuk. Data yang diisikan kedalam suatu alamat diisikan lagi
kesuatu register penunjuk. Biasanya mengunakan tanda @.
Contoh:
MOV Rn,#30H : alamat 30h dimasukan ke register penunjuk Rn
MOV @Rn,#40H : data 40H diisikan ke alamat 30H memalui register
Rn
MOV A,@Rn : Data 20H di isikan ke register BX

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

5
E. PROGRAM

Program 1

MOV AL,11
MOV BL,22
MOV CL,33
MOV DL,44

MOV AL,BL
MOV BL,CL

MOV CH,77
MOV DH,88
MOV AH,BH
MOV BH,CH

MOV AX,1234
MOV BX,2345
MOV CX,DX
MOV DX,BX

6
F. OUTPUT PROGRAM

TAMPILKAN OUTPUT SCREEN

7
8
Tabel Data
AX BX CX DX
Mnemonic
Alamat Code
(Operand)
AH AL BH BL CH CL DH DL

00 00 00 00 00 00 00 00
0100 BO11 MOV AL,11 00 11 00 00 00 00 00 00
0102 B322 MOV BL,22 00 11 00 22 00 00 00 00
0104 B133 MOV CL,33 00 11 00 22 00 33 00 00
0106 B244 MOV DL,44 00 11 00 22 00 33 00 44
0108 88D8 MOV AL,BL 00 22 00 22 00 33 00 44
010a 88CB MOV BL,CL 00 22 00 33 00 33 00 44
010c B577 MOV CH,77 00 22 00 33 77 33 00 44
010e B688 MOV DH,88 00 22 00 33 77 33 88 44
0110 88FC MOV AH,BH 00 22 00 33 77 33 88 44
0112 88EF MOV BH,CH 00 22 77 33 77 33 88 44
0114 B83412 MOV AX,1234 12 34 77 33 77 33 88 44
0117 BB4523 MOV BX,2345 12 34 23 45 77 33 88 44
011a 89D1 MOV CX,DX 12 34 23 45 88 44 88 44
011c 89DA MOV DX,BX 12 34 23 45 88 44 23 45

9
G. ALGORITMA PROGRAM
1. Buka aplikasi dosbox
2. Mount direktori debug (mount c c:\debug)
3. Masuk ke direktori debug
4. Ketikan perintah a100 sebagai instruksi pertama yang diletakkan
5. Masukkan perintah mov al,11 yang berarti program akan menyalin
data bernilai 11 ke dalam register al dan menyimpan hasil register
untuk perintah berikutnya.
6. Masukkan perintah mov bl,22 yang berarti program akan menyalin
data bernilai 22 ke dalam register bl dan menyimpan hasil register
untuk perintah berikutnya.
7. Masukkan perintah mov cl,33 yang berarti program akan menyalin data
bernilai 33 ke dalam register cl dan menyimpan hasil register untuk
perintah berikutnya.
8. Masukkan perintah mov dl,44 yang berarti program akan menyalin data
bernilai 44 ke dalam register dl dan menyimpan hasil register untuk
perintah berikutnya.
9. Masukkan perintah mov al,bl yang berarti program akan menyalin data
dari register bl yaitu 22 ke dalam register al yang sebelumnya bernilai
11 menjadi 22 dan menyimpan hasil register al.
10. Masukkan perintah mov bl,cl yang berarti program akan menyalin data
dari register cl yaitu 33 ke dalam register bl yang sebelumnya bernilai
22 menjadi 33 dan menyimpan hasil register bl.
11. Masukkan perintah mov ch,77 yang berarti program akan menyalin data
bernilai 77 ke dalam register ch dan menyimpan hasil register untuk
perintah berikutnya.
12. Masukkan perintah mov dh,88 yang berarti program akan menyalin data
bernilai 88 ke dalam register dh dan menyimpan hasil register untuk
perintah berikutnya.
13. Masukkan perintah mov ah,bh yang berarti program akan menyalin data
dari register bh yaitu 00 ke dalam register ah yang bernilai 00 dan
menyimpan hasil register ah.
14. Masukkan perintah mov bh,ch yang berarti program akan menyalin data
dari register ch yaitu 77 ke dalam register bh yang sebelumnya bernilai
00 menjadi 77 dan menyimpan hasil register bh.
15. Masukkan perintah mov ax,1234 yang berarti program akan menyalin
data bernilai 1234 ke register ax dimana 2 digit pertama (12) disimpan
ke register ah dan 2 digit terakhir disimpan ke register al (34) lalu
program disimpan di register ax untuk perintah selanjutnya.
16. Masukkan perintah mov bx,2345 yang berarti program akan menyalin
data bernilai 2345 ke register bx dimana 2 digit pertama (23) disimpan
ke register bh dan 2 digit terakhir disimpan ke register bl (45) lalu
program disimpan di register bx untuk perintah selanjutnya.

10
17. Masukkan perintah mov cx,dx yang berarti program akan menyalin data
dari register dx yaitu 8844 ke dalam register cx yang sebelumnya
bernilai 7733 menjadi 8844 lalu register cx disimpan untuk perintah
selanjutnya.
18. Masukkan perintah mov dx,bx yang berarti program akan menyalin data
dari register bx yaitu 2345 ke dalam register dx yang sebelumnya
bernilai 8844 menjadi 2345 lalu register dx.
19. Setelah instruksi mov dimasukkan, selanjutnya masukkan perintah t
untuk melakukan pemeriksaan program terhadap register yang sudah
kita mov.

11
H. FLOWCHART PROGRAM

12
I. ANALISIS PRAKTIKUM
Instruksi transfer data akan menyalin atau memindahkan data dan alamat
antar register maupun lokasi-lokasi memori atau I/O. Pada praktikum ini
digunakan instruksi mov yang merupakan instruksi yang paling banyak
digunakan untuk mentrasfer data dalam satuan byte maupun word antara
register dan lokasi memori atau antar register. Selain itu dapat digunakan
untuk menyalin suatu nilai langsung ke suatu lokasi memori atau register.
Percobaan ini dilakukan dengan melakukan mount terhadap direktori debug
dengan menggunakan software Dosbox, setelah masuk ke direktori debug
lalu memasukkan instruksi a100 sebagai instruksi pertama yang diletakkan
ke register. Register yang digunakan pada praktikum ini adalah general
purpose register yaitu AX (AH dan AL), BX ( BH dan BL), CX (CH dan
CL) dan DX (DH dan DL). Semua register tersebut adalah register 16 bit
dengan asumsi 8 bit tinggi diwakili oleh High dan 8 bit endah diwakili oleh
LOW.

J. KESIMPULAN
MOV merupakan instruksi yang paling banyak digunakan untuk mentrasfer
data dalam satuan byte maupun word antara register dan lokasi memori atau
antar register. Proses transfer data dapat dilakukan dengan menggunakan
Bahasa assembly menggunakan debug. Debug adalah alat bantu dalam
perancangan peralatan berbasis mikroprosesor. Setiap instruksi ditulis dalam
satu baris kode, setiap instruksi terdiri dari mnemonic dan kadang
ditambahkan dengan 1 atau 2 operand. Operand adalah data yang hendak
dimanipulasi dan mnemonic yang menginstruksikan CPU untuk melakukan
sesuatu terhadap operand. Operand pertama pada program menunjukkan
lokasi tempat penyimpanan data, operand pertama menunjukkan lokasi asal
data. Program dijalankan dengan perintah debug (t) untuk tracing instruksi
program.

13

Anda mungkin juga menyukai