Oleh Kelompok II:
Ayu Berlianda Putri (1001083014)
Irhamul Hamdi (1001083018)
Dasar Teori
1.2.1
Bahasa Assambler
Dalam
bahasa assembler mempunyai 3 instruksi dasar, yaitu mnemonic opcode), operan 1
dan operan2 serta komentar (jika diperlukan)
Mnemonic atau
opcode ialah kode yang akan melakukan aksi terhadap operand . Operand
ialah data yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1 ,2
atau lebih operand, kadang juga tidak perlu operand. Sedangkan komentar dapat
kita berikan dengan menggunakan tanda titik koma (;). Berikut contoh jumlah
operand yang berbeda beda dalam suatu assembly.
CJNE R0,#22H, Tasmi ;dibutuhkan 3 buah operand
MOVX @DPTR, A ;dibutuhkan 2 buah operand
RR A ;1 buah operand
NOP ;
tidak memerlukan operand
Semua
instruksi tersebut dapat dibagi menjadi lima kelompok menurut fungsinya, yaitu:
Instruksi
Pemindahan Data




1.2.2
Debug dan Interupt
A.
Debug
Debug
adalah suatu utiliti dalam DOS yang digunakan untuk membuat pemrograman assambler
dengan format ekstensi COM.
Perintah-perintah debug antara lain :
1.
Q (Quit)
Mengembalikan
ke dos prompt
C> Debug
-Q
A>
2.
H (Hexa)
Melaksanakan
perintah penambahan dan pengurangan terhadap dua bilangan hexa
C>Debug
-H 2204 2012
4216 01F2
3.
A (assambler)
Perintah
untuk menulis program assambler
C>Debug
-a
17C0:0100 mov ax,12
4.
R(Register)
Digunakan
untuk mengetahui isi masing-masing register
C>debug
-r
AX=0000 BX=0000
CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=17C0 ES=17C0
SS=17C0 CS=17C0 IP=0100
NV UP EI PL NZ NA PO NC
17C00:0100
B81200 mov ax,12
Perintah
ini juga bisa untuk mengetahui atau memperbaharui isi register tertentu
C>Debug
rCX
CX 0000
:0100
C>Debug
rCX
CX 0100
:
5.
N(Name)
Perintah
untuk membuat atau merubah nama file
C>Debug
-N D:Coba.com
6.
W(Writing)
Menulis
program dan data ke dalam disc
C>Debug
-w
writing 0008 bytes
7.
G (Go)
Menjalankan
program (misal program cetak huruf A)
C>Debug
-G
A
Program terminated normally
8.
T(Trace)
Menjalankan
program perbaris dengan menampilkan register dipakai
C>Debug
-T
AX=0000 BX=0000
CX=0000 DX=0000 SP=FFEE
BP=0000 SI=0000 DI=0000
DS=17C0 ES=17C0
SS=17C0 CS=17C0 IP=0100
NV UP EI PL NZ NA PO NC
17C00:0100 B81200 mov ax,12
9.
U (Unsamble)
Menampilkan
list dari program yang sedang berjalan
U[tempat awal
program yang diinginkan]L[panjang program/1 byte akhir dari alamat akhir
program]
B. Interupt (Int)
Perintah ini merupakan pemanggilan
subroutin yang sudah tersedia di memori komputer
Subroutine yang dapat dipanggil
menggunakan perintah int (Interup) terdiri dari dua jenis yaitu:
1.
Bios Interrupt, yaitu Int yang
disediakan oleh BIOS(Basic Input Output System). Int yang termasuk dalam
Interrupt Bios adalah Int 0 hingga 1F hexa
2.
DOS Interrupt yaitu Int yang disediakan
oleh DOS (Disk Operation System). Yang termasuk dalam Interrupt ini adalah
Interrupt diatas 1F hexa
Interupt DOS yang sering digunakan
adalah Int 20h dan Int 21h service 02h
a.
Int 20h
Int
ini mempunyai tugas memberhentikan proses komputer terhadap suatu program COM.
b.
Int 21h service 21h
Int
21h mempunyai banyak tugas sehingga dibagi menjadi berbagai macam service
number. Service 02h merupakan bagian tugas Int 21h yang sering dipakai yaitu
untuk mencetak sebuah huruf ke monitor.
Untuk
menjalankan fungsi Int 21h service 02h harus memenuh syarat sebagai berikut:
1. Register
AH harus berisi service number dari Int 21h yang akan dijalankan (02h)
2. Register
DL, harus berisi bilangan hexa dari karakter ASCII yang akan dicetak.
C. Instruksi-Instruksi Dasar
1. Instruksi Pengalamatan
MOV tujuan,asal (tujuan:
register/memori, asal:angka/register/memori)
Misal MOV AX,1234H
(register AX diisi angka 1234 H)
2. Instruksi Penjumlahan
INC
tujuan
Misal
INC DX (DX = DX+1)
ADD tujuan,asal
Misal ADD AX,1234
(AX=AX+1234H)
3. Instruksi Pengurangan
DEC
tujuan
Misal
DEC AX (AX=AX-1)
SUB tujuan,asal
Misal
SUB AX,1200H (AX = AX-1200H)
Langkah
Kerja:
1. Klik
start, dari tampilan menu pilih Run. Ditampilan menu Run, ketik command dan selanjutnya pilih OK.
2. Selanjutnya ketik huruf A/a, lalu tekan Enter,
maka akan keluar tampilan -> 0C1E:0100.
0C1E
: adalah alamat segmen.
0100
: adalah alamat offset
3. Lalu ketikan perintah seperti di bawah ini:
MOV
AH, 02 ( merupakan fungsi 2 dari INT 21)
MOV
DL, 41 (41 merupakan kode ASCII dari
huruf A)
INT
21 (Interupt 21 fungsi 2)
INT
20 (merupakan perintah untuk memberhentikan
program)
v
Lalu
setelah itu ketikkan huruf G, maka hasilnya adalah huruf A.
v
Program
Terminated Normally, dengan cara mengetikkan U 0100 L 08.
Keterangan
: 0100 : adalah alamat awal.
08
: adalah alamat akhir yang terdiri dari 8 larik.
Dengan menggunakan program ini kita
bias melihat Segmen Ofset, Opcode dan Instruksi.
v
Kemudian
ketikkan huruf T : yang berfungsi untuk melihat eksekusi setiap instruksi.
v
Selanjutnya
ketikkan huruf Q : yang berfungsi untuk keluar dari debug.
4.
Perintah
selanjutnya:
MOV
CX, 05
MOV
AH, 02
MOV
DL, 41
INT
21
LOOP
0103
INT
20
v
Lalu
setelah itu ketikkan huruf G, maka hasilnya adalah huruf AAAA.
5.
Perintah
selanjutnya (percobaan kelompok):
MOV
CX, 02
MOV
AH, 02
MOV
DL, 05
INT
21
LOOP
0107
INT
20
v
Hasilnya
adalah gambar wajik.
v
Lalu
ketikkan U 0100 L 0D
ALAMAT
|
REGISTER
|
||||||
SEGMEN
|
OFFSET
|
AX
|
BX
|
CX
|
DX
|
SP
|
IP
|
0C1E
|
0103
|
0000
|
0000
|
0002
|
0000
|
FFEE
|
0103
|
0C1E
|
0105
|
0200
|
0000
|
0002
|
0000
|
FFEE
|
0105
|
0C1E
|
0107
|
0200
|
0000
|
0002
|
0005
|
FFEE
|
0107
|
ALAMAT
|
|
|||
SEGMEN
|
OFFSET
|
INSTRUKSI
|
OPCODE
|
KETERANGAN
|
0C1E
|
0100
|
MOV CX, 0002
|
B90200
|
1. 02 = 2 kali perulangan.
|
0C1E
|
0103
|
MOV AH, 02
|
B402
|
|
0C1E
|
0105
|
MOV DL, 05
|
B205
|
|
0C1E
|
0107
|
INT 21
|
CD21
|
|
0C1E
|
0109
|
LOOP 0107
|
E2FC
|
|
0C1E
|
010B
|
INT 20
|
CD20
|
6.
Perintah
selanjutnya :
MOV
CX, 1A
MOV
DL, 41
MOV
AH, 02
INT
21
INC
DL
LOOP
0105
INT
20
v
Hasilnya
adalah ABCDEFGHIJKLMNOPQRSTUVWXYZ.
v
Lalu
ketikkan U 0100 L 0F
ALAMAT
|
|
|||
SEGMEN
|
OFFSET
|
INSTRUKSI
|
OPCODE
|
KETERANGAN
|
0C1E
|
0100
|
MOV CX, 001A
|
B91A
|
1. 1A = 1 * 16 +10 *16
= 16 + 10
= 26
Ket: 26 kali perulangan.
2. 41 = “A”
3. INC DL= 41+1=42
42+1=43
s/d stop
|
0C1E
|
0103
|
MOV DL, 41
|
B241
|
|
0C1E
|
0105
|
MOV AH, 02
|
B402
|
|
0C1E
|
0107
|
INT 21
|
CD21
|
|
0C1E
|
0109
|
INC DL
|
FEC2
|
|
0C1E
|
010B
|
LOOP 0105
|
E2F8
|
|
0C1E
|
010D
|
INT 20
|
CD20
|
ALAMAT
|
REGISTER
|
||||||
SEGMEN
|
OFFSET
|
AX
|
BX
|
CX
|
DX
|
SP
|
IP
|
0C1E
|
0103
|
0000
|
0000
|
001A
|
0000
|
FFEE
|
0103
|
0C1E
|
0105
|
0000
|
0000
|
001A
|
0041
|
FFEE
|
0105
|
0C1E
|
0107
|
0200
|
0000
|
001A
|
0041
|
FFEE
|
0107
|
7.
Perintah
selanjutnya :
MOV
CX, 1A
MOV
DL, 5A
MOV
AH, 02
INT
21
DEC
DL
LOOP
0105
INT
20
v
Hasilnya
adalah ZYXWVUTSRQPONMLKJIHGFEDCBA
v
Lalu
ketikkan U 0100 L 0F
8.
Perintah
selanjutnya :
MOV BX, 0000
MOV DL, 41
MOV CX 0003
MOV AH, 02
INT 21
LOOP 0108
INC DL
CMP DL, SB
JNE 0105
MOV DL, OP
MOV AH, O2
INT 21
MOV DL, 0A
INT 21
INC BX
CMP BX,000B
JLE 0103
INT 20








INT
21

DL
= SB
Y
![]() |



![]() |
Y

CETAK

CETAK


![]() |




T (ket: apabila belum
sampai baris 11,maka cetak dari A)
STOP
9.
OPERASI
STACK
Perintah
selanjutnya :
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
v
Hasilnya
adalah A B C D E F G H I J K L M N O P Q R S T U V W X Y Z.
v
Lalu
ketikkan U 0100 L 17
SEGMEN
|
OFFSET
|
INSTRUKSI
|
OPCODE
|
KETERANGAN
|
0C1E
|
0100
|
MOV AH, 02
|
B402
|
1.
MOV BL, DL = BL(spasi) berfungsi untuk menyimpan fungsi DL.
2.
MOV DL, BL = berfungsi untuk mengembalikan fungsi dari DL.
|
0C1E
|
0103
|
MOV CX, 001A
|
B91A00
|
|
0C1E
|
0105
|
MOV DL, 41
|
B241
|
|
0C1E
|
0107
|
INT 21
|
CD21
|
|
0C1E
|
0109
|
MOV BL, DL
|
88B3
|
|
0C1E
|
010B
|
MOV DL, 20
|
B220
|
|
0C1E
|
010D
|
INT 21
|
CD21
|
|
0C1E
|
010F
|
MOV DL, BL
|
88DA
|
|
0C1E
|
0111
|
INC DL
|
FEC2
|
|
0C1E
|
0113
|
LOOP 0107
|
E2F2
|
|
0C1E
|
0115
|
INT 20
|
CD20
|
ALAMAT
|
REGISTER
|
||||||
SEGMEN
|
OFFSET
|
AX
|
BX
|
CX
|
DX
|
SP
|
IP
|
0C1E
|
0103
|
0000
|
0000
|
0000
|
0000
|
FFEE
|
0103
|
0C1E
|
0105
|
0200
|
0000
|
001A
|
0000
|
FFEE
|
0105
|
0C1E
|
0107
|
0200
|
0000
|
001A
|
0041
|
FFEE
|
0107
|
10. Perintah selanjutnya :
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
v
Hasilnya
adalah A B C D E F G H I J K L M N O P Q R S T U V W X Y Z.
v
Lalu
ketikkan U 0100 L 15
SEGMEN
|
OFFSET
|
INSTRUKSI
|
OPCODE
|
KETERANGAN
|
0C1E
|
0100
|
MOV AH, 02
|
B402
|
|
0C1E
|
0102
|
MOV CX, 001A
|
B91A00
|
|
0C1E
|
0105
|
MOV DL, 41
|
B241
|
|
0C1E
|
0107
|
INT 21
|
CD21
|
|
0C1E
|
0109
|
PUSH DX
|
52
|
|
0C1E
|
010A
|
MOV DL, 20
|
B220
|
|
0C1E
|
010C
|
INT 21
|
CD21
|
|
0C1E
|
010E
|
POP DX
|
5A
|
|
0C1E
|
010F
|
INC DL
|
FEC2
|
|
0C1E
|
0111
|
LOOP 0107
|
E2F2
|
|
0C1E
|
0113
|
INT 21
|
CD20
|
ALAMAT
|
REGISTER
|
||||||
SEGMEN
|
OFFSET
|
AX
|
BX
|
CX
|
DX
|
SP
|
IP
|
0C1E
|
0103
|
0200
|
0000
|
0000
|
0000
|
FFEE
|
0103
|
0C1E
|
0105
|
0200
|
0000
|
001A
|
0000
|
FFEE
|
0105
|
0C1E
|
0107
|
0200
|
0000
|
001A
|
0041
|
FFEE
|
0107
|
Tidak ada komentar:
Posting Komentar