BAHASA RAKITAN
Disusun Oleh :
NIM : 09011182025011
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
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
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
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
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
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