468x60 Ads


Tugas 1 Paktek Microprossesor

Laporan 1

Praktikum Mikroprocessor

Pemograman Assambler 1


 Nama Kelompok : 6
 - Merlin Kusuma Efendi (1001081023)

Patner :
 - Winarni Sari (1001081041)
- 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
Lihat hasil program dengan ketikkan g






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