BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Kamis, 05 April 2012

Laporan 1 Microprocessor


MIKROPROCESSOR  MENGGUNAKAN BAHASA ASSEMBLER

ANGGOTA KELOMPOK  IV
 1. YOHANES PAMUNGKAS
 2 . WELLA ASBENIA PUTRI

1. LANDASAN TEORI
Assembler adalah sebuah program komputer untuk menerjemahkan Bahasa Assembly -- intinya, sebuah representasi menmonic dari bahasa mesin — menjadi kode objek. Sebuah assembler silang(lihat kompilator silang) memproduksi kode untuk satu jenis prosesor, tetapi dapat dijalankan di prosesor lain.
Selain menterjemahkan instruksi assembly mnemonic menjadi opcode, assembler juga menyediakan kemampuan untuk menggunakan nama simbolik untuk lokasi memori (menghindari penghitungan rumit dan pembaruan alamat secara manual ketika sebuah program diubah sedikit), dan fasilitas makro untuk melakukan penggantian textual — biasanya digunakan untuk menggantikan suatu urutan instruksi yang pendek untuk dijalankan perbaris dan bukan dalam sebuah subrutin.
Program bahasa assembly berisikan :
1. Instruksi – instruksi mesin
2. Pengarah – pengarah assembler
3. Kontrol – kontrol assembler
4. Komentar – komentar
Instruksi – instruksi mesin merupakan mnemonik yang menyatakan suatu instruksi yang bisa dijalankan (misalnya MOV). Pengarah assembler merupakan instruksi keprogram assembler yang mendefinisikan struktur program, simbol – simbol, (menentukan) mode – mode assembler dan aliran assembler langsung (missal STITLE).Komentar perlu dituliskan agar program mudah dibaca, tidak harus perintruksi bisa juga sekumpulan instruksi yang mengerjakan suatu operasi.
Baris – baris program yang mengandung instuksi mesin atau pengarah assembler harus mengikuti aturan program assembler ASM51. masing – masing baris batas beberapa field yang dipisahkan dengan spasi atau tabulasi.
1. Label
Sebuah label mewakili alamat dari suatu nstruksi (data) yang mengikat. Label ini digunakan sebagai operan pada instruksi – instruksi percabangan. (Misal : SJMP TERUS)
2. Mnemonik
Mnemonik instruksi atau pengarah assembler dimasukan dalam “mnemonik field” yang mengikuti “label mnemonik”. Mnemonik instruksi misalnya : ADD, MOV, INC, dan lain – lain.
3. Operan
Operan ditulis setelah mnemonik, bisa berupa alamat atau data yang digunakan instruksi yang bersangkutan. Bisa juga berupa label yang mewakili alamat data atau berupa simbol yang mewakili data konstan.
4. Komentar
Komentar harus diwakili dengan titik koma (;). Sebuah garis akan dianggap sebagai komentar jika diawali dengan titik koma.
5. Simbol – simbol assembler khusus
Simbol – simbol assambler khusus digunakan untuk mode – mode pengalamatan melalui register. Simbol – simbol ini mencakup A, R0 s/d R7, DPTR, C, PC dan AB. Juga tanda dolar yang dapat digunakan untuk menunjuk nilai pecahan program saat itu.
6. Pengalamatan tak langsung
Beberapa instruksi menggunakan operan berupa register yang menyimpan alamat data yang disimpan. Dalam hal ini digunakan tanda “at” yang dapat digunakan bersama dengan R0, R1, DPTR atau PC tergantung dari instruksi yang digunakan.
7. Data langsung
Data – data langsung yang diawali tanda poud dan menyatu dengan instruksi yang bersangkutan.
8. Alamat data
Banyak instruksi – instruksi yang mengakses lokasi – lokasi memori menggunakan pengalamatan langsung dan membutuhkan alamat memori dan internal (00h hingga 7Fh) atau alamat SFR (80h hingga FFh) pada operan.
9. Alamat Bit
Salah satu kelebihan dari mikrokontroller 51 adalah kemampuannya bisa mengakses alamat – alamat perbit tanpa menggunakan cara khusus. Instruksi yang melibatkan lokasi yang teralamati bit harus menyediakan alamat bit dalam memori data internal (00h hingga 7Fh) atau alamat bit di ruang SFR (80h hingga FFh).
10. Alamat Kode
Suatu Alamat kode digunakan dalam operan instruksi lompatan, termasuk lompatan relatif (SJMP dan lompatan bersyarat), lompatan dan call far (LJMP, LCALL).
11. Jump dan Call Jump
ASM51 membolehkan kita untuk menggunakan mnemonik JMP atau CALL yang umum; mnemonik JMP digunakan sebagai wakil dari SJMP, AJMP atau LJMP, sedangkan mnemonik CALL mewakili ACALL atau LCALL.

2. LANGKAH KERJA

1.      Masuk ke commandprompt.
2.      Ketikkan huruf a, maka akan muncul sebuah kode yang memuat alamat.
      Contoh disini : OC1E : 0100
OCIE              = alamat segmen
0100                = alamat offset
3.      Mengetikkan program :    
MOV CX, 1A
MOV DL, 41
MOV AH, 02
INT 21
INC DL
LOOP 0105
INT 20

4.      Menjalankan program dengan menggunakn perintah debug, dengan cara mengetikkan G.
5.      Mengetikkan instruksi
            U 0100 L OF
Instruksi ini berfungsi untuk menampilkan Segmen Ofset, opcode dan instruksi. U 0100 merupakan alamat awal dan L OF merupakan alamat akhir dari program.
6.      Mengetikkan instruksi “ t “  untuk menampilkan perubahan registrasi pada instruksi. Ini dilakukan sampai muncul perbedaan pada alamat segmen.
7.      Setelah semua instruksi telah di buat, ketikkan instruksi “ q “ untuk keluar dari debug. 

3. OUTPUT

4. lATIHAN
1.      Dari program-program yang sudah ditulis dan diuji apa fungsi dari register:
AX, BX, CX, DX, SP, IP, DS, SS, ES, CS.
jawaban :
  Accumulator Register (AX)
Fungsi: Sebagai akumulator dan berhubungan dengan jenis-jenis operasi khusus seperti Aritmetika, In/Out, Shift, Logic, Rotate, dan operasi desimal berkode biner.
  Base Register (BX)
Fungsi: Sebagai register base untuk mereferensi alamat memori. Operasi yang dapat dilakukan adalah Rotate, Logic, Shift, dan Aritmetika.
  Counter Register (CX)
Fungsi: Sebagai pencacah implisit dengan instruksi tertentu, misalnya terhadap perintah Loop dan operasi string. Counter naik jika direction flag bernilai 0, dan counter turun jika direction flag bernilai 1.
  Data Register (DX)
Fungsi: Menyimpan alamat port I/O selama operasi I/O tertentu, baik alamat port 8 bit maupun 16 bit. Digunakan juga dalam operasi perkalian dan pembagian.
  Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
  Register IP (Instruction Pointer, 16 bit)
Fungsi: Register yang berpasangan dengan CS sebagai register utama untuk menunjukkan baris perintah program. Pada saat program dijalankan, IP akan langsung menunjuk pada awal program. Code Segment dan Instruction Pointer berfungsi sebagai program counter ditulis dengan format CS:IP. Secara umum, kode mesin diletakkan di Code Segment, semua data diletakkan di Data Segment, dan operasi PUSH dan POP dilakukan di Stack Segment.
  Register CS (Code Segment)
Fungsi: Mencatat segment dari kode program atau instruksi, register CS berpasangan dengan register IP (Instruction Pointer) dalam format CS:IP.
  Register DS (Data Segment)
Fungsi: Menyimpan alamat dari segment dimana data terletak.
2.      Buat program untuk menampilkan:
1*1 = 1
2*1 = 2
Jawaban:
  1 * 1 = 1
program:         MOV AH,02
                        MOV DL,31
                        INT 21
                        MOV BL,DL
                        MOV DL,2A
                        INT 21
                        MOV BL,DL
                        MOV DL,31
                        INT 21
                        MOV BL,DL
                        MOV DL,3D
                        INT 21
                        MOV BL,DL
                        MOV DL,31
                        INC DL
                        LOOP 107
                        INT 20
  2 * 1  =  2
program:          MOV AH,02
                        MOV DL,32
                        INT 21
                        MOV BL,DL
                        MOV DL,2A
                        INT 21
                        MOV BL,DL
                        MOV DL,31
                        INT 21
                        MOV BL,DL
                        MOV DL,3D
                        INT 21
                        MOV BL,DL
                        MOV DL,32
                        INC DL
                        LOOP 107
                        INT 20

5. KESIPULAN



lirik & chord

chord gitar