Tugas 1 Paktek Microprossesor
Merlin Kusuma Efendi_023 | 06.31 |
Laporan 1
Praktikum Mikroprocessor
Pemograman Assambler 1
Nama Kelompok : 6
- Merlin Kusuma Efendi (1001081023)
Patner :
Patner :
- Winarni Sari (1001081041)
- Reni Fatimah (1001081023)
- Reni Fatimah (1001081023)
A. Dasar Teori
Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya dari tiga karakteristik berikut :
1. Mnemonic operation code. Sebagai pengganti numeric operation code (opcodes) yang digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly.
2. Symbolic operand specification. Penamaan simbol diasosiasikan sebagai suatu data atau instruksi. Operand lebih menunjukkan symbolic reference dibandingkan dengan alamat mesin suatu data atau instruksi.
3. Declaration of data/storage area. Data dapat dinyatakan dalam notasi desimal. Ini dilakukan untuk mencegah konversi secara manual dari konstanta ke dalam representasi internal mesin. Sebagai contoh :
-5 menjadi (11111010)2 atau 10.5 menjadi (41A80000)16
B. Langkah Kerja
- Klik Start -> pada menu Start pilih Run -> pada Run ketikan Cmd (Command Prompt).
- Kemudian pada Command Prompt, ketikkan debug untuk memulai menuliskan dan menjalankan bahasa assember.
- Kemudian ketik huruf “a” lalu enter
- Dan masukkan perintah yg diinginkan
1. Jika sudah berada di debug.com ulangi langkah 4 dan ketik program berikut, beri nama
MOV CX,05
MOV AH,02
MOV DL,41
INT 21
LOOP 0103
INT 20
Enter 2 kali
Kemudian Ketik U 100 L 0d dan isi tabel berikut
Tabel 1 Tabel Instruksi
ALAMAT | INSTRUKSI | OPCODE | KETERANGAN | |
SEGMEN | OFFSET | |||
0AEC | 0100 | MOV CX,0005 | B90500 | Register CX diisi 05H |
0AEC | 0103 | MOV AH,02 | B402 | Untuk mencetak |
0AEC | 0105 | MOV DL,41 | B241 | Mengisi kode A |
0AEC | 0107 | INT 21 | CD21 | Perintah untuk mencetak |
0AEC | 0109 | LOOP 0103 | E2F8 | Perulangan pada 0103 |
0AEC | 010B | INT 20 | CD20 | Menghentikan program |
Gunakan perintah Trace (T) dan isi tabel berikut
Tabel 2 Isian Register
ALAMAT | REGISTER | ||||||
SEGMEN | OFFSET | AX | BX | CX | DX | SP | IP |
0ADF | 0103 | 0000 | 0000 | 0005 | 0000 | FFEE | 0103 |
0ADF | 0105 | 0200 | 0000 | 0005 | 0000 | FFEE | 0103 |
0ADF | 0107 | 0200 | 0000 | 0005 | FFEE | 0000 | 0107 |
2. Operasi Aritmatika
Tulis program untuk menampilkan huruf A s/d Z berikut dan beri nama tambah1.com
MOV CX,1A
MOV DL,41
MOV AH,02
INT 21
INC DL
LOOP 0105
INT 20
Kemudian Ketik U 100 L 0d dan isi tabel berikut
Tabel 1 Tabel Instruksi
ALAMAT | INSTRUKSI | OPCODE | KETERANGAN | |
SEGMEN | OFFSET | |||
0AEC | 0100 | MOV CX,001A | B91A00 | Register CX, diisi 1A |
0AEC | 0103 | MOV DL,41 | B241 | Mengisi kode A |
0AEC | 0105 | MOV AH,02 | B402 | Untuk mencetak |
0AEC | 0107 | INT 21 | CD21 | Perintah u/ mencetak |
0AEC | 0109 | INC DL | FEC2 | Penambahan kode |
0AEC | 010B | LOOP 0105 | E2F8 | Perulangan 0105 |
Gunakan perintah Trace (T) dan isi tabel berikut
Tabel 2 Isian Register
ALAMAT | REGISTER | ||||||
SEGMEN | OFFSET | AX | BX | CX | DX | SP | IP |
0ADF | 0103 | 0000 | 0000 | 001A | 0000 | FFEE | 0103 |
0ADF | 0105 | 0000 | 0000 | 001A | 0041 | FFEE | 0105 |
0ADF | 0107 | 0200 | 0000 | 001A | 0041 | FFEE | 0107 |
Tulis program berikut dan beri nama kurang1.com
MOV CX,1A
MOV DL,5A
MOV AH,02
INT 21
DEC DL
LOOP 0105
INT 20
Kemudian Ketik U 100 L (lihat bit awal dari alamat akhir program) dan buat tabel seperti
Tabel 1 Tabel Instruksi
ALAMAT | INSTRUKSI | OPCODE | KETERANGAN | |
SEGMEN | OFFSET | |||
0AEC | 0100 | MOV CX,001A | B91A00 | Register CX, disis 1A |
0AEC | 0103 | MOV DL,5A | B25A | Mengisi kode Z |
0AEC | 0105 | MOV AH,02 | B402 | Untuk mencetak |
0AEC | 0107 | INT 21 | CD21 | Perintah u/ mencetak |
0AEC | 0109 | DEC DL | FECA | Pengurangan kode |
0AEC | 010B | LOOP 0105 | E2F8 | Perulangan pada 0105 |
Gunakan perintah Trace (T) dan isi tabel berikut
Tabel 2 Isian Register
ALAMAT | REGISTER | ||||||
SEGMEN | OFFSET | AX | BX | CX | DX | SP | IP |
0ADF | 0103 | 0000 | 0000 | 001A | 0000 | FFEE | 0103 |
0ADF | 0105 | 0000 | 0000 | 001A | 005A | FFEE | 0105 |
0ADF | 0107 | 0200 | 0000 | 001A | 005A | FFEE | 0107 |
Pertanyaan / Tugas :
1. Dari program-program yang sudah ditulis dan diuji apa fungsi dari register
AX,BX,CX,DX,SP,IP,DS,SS,ES,CS
Register AX
ð secara khusus digunakan pada operasi aritmatika terutama dalam operasi pembagian dan pengurangan.
Register BX
ð Biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen.
Register CX
ð digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi.
Register DX
ð digunakan untuk menampung sisa hasil pembagian 16 bit. Pada prosesor 80386terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX dan EDX.
Register CS(Code Segment)
ð digunakan untuk menunjukkan tempat dari segmen yang sedangaktif, register ini sebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program anda nantinya
Register DS(Data Segment)
ð biasanya digunakan untuk menunjukkan tempat segmen dimanadata-data pada program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada program residen.
Register ES (Extra Segment)
ð sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatualamat di memory
SS(Stack Segment)
ð menunjukkan letak dari segmen yang digunakan oleh stack. register inisebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program andanantinya.
Index Pointer Register
ð Register IP berpasangan dengan CS(CS:IP) menunjukkan alamatdimemory tempat dari intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP jugamerupakan register 16 bit.
Register SP (Stack Pointer)
ð yang berpasangan dengan register segment SS(SS:SP) digunakanuntuk mununjukkan alamat dari stack.
2. Buat program untuk menampilkan
1*1 = 1
2*1 = 2
D. Kesimpulan
a. Program assembler mengaplikasikan kerja pada SAP 3
b. Data yg di inputkan memakai kode ASCII
c. Ketelitian kerja sangat dituntut untuk mendapatkan hasil yang maksimal
d. Setiap mengawali penulisan program harus dia awali oleh Mov ah,02 dan di akhiri oleh Int 20, yang berfungsi untuk menampilkan data yang di inputkan pada Mov DL,..
e. Int 21 digunakan untuk menyimpan data yang dimasukkan pada Mov DL,.. jadi harus dibuat, sebelum Int 20.
f. INC = untuk melooping dalam penambahan sedangkan DEC = melooping untuk pengurangan.
0 komentar:
Posting Komentar