waduh ini baru bener2 tugas yang membuat aku pusing…..pasalnya tugas ini sebelumnya belum pernah diajarkan oleh para dosen……ya tapi sempet si cm pengenalan aja…..ok gak usah panjang lebar deh ini tugas yang gw buat……

size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } –>

Perintah Dasar Assembler

  1. MOV

Perintah MOV adalah perintah untuk mengisi, memindahkan, memperbaruhi isi suatu register, variable ataupun lokasi memory

Adapun tata penulisan perintah MOV adalah :

MOV [operand A], [Operand B]

Contoh :

MOV AH,02

Operand A adalah Register AH

Operand B adalah bilangan 02

Hal yang dilakukan oleh komputer untuk perintah diatas adalah memasukan 02 ke register AH.

  1. INT (Interrupt)

Bila anda pernah belajar BASIC, maka pasti anda tidak asing lagi dengan perintah GOSUB. Perintah INT juga mempunyai cara kerja yang sama dengan GOSUB, hanya saja subroutine yang dipanggil telah disediakan oleh memory komputer yang terdiri 2 jenis yaitu :

 

  • Bios Interrupt ( interput yang disediakan oleh BIOS (INT 0 – INT 1F))

  • Dos Interrupt ( Interrupt yang disediakan oleh DOS (INT 1F – keatas))

 

 

 

LOOP

Dalam Assembler perintah untuk melakukan perulangan digunakan perintah LOOP. Yang mempunyai tata penulisan sebagai berikut :

Loop [lokasi memory]

Adapun syarat lain untuk operasi Loop adalah harus mengisi register CX untuk setiap kali pengulangan. Coba anda lihat contoh program looping dibawah ini :

 

MOV CX,05

:0103 MOV AH,02

MOV DL,41

INT 21

LOOP 0103

INT 20

Jika program diatas dijalankan maka akan terjadi perulangan sebanyak lima kali. Hal ini karena isi dari register CX adalah 5 dan program akan looping ke memory segment 0103 yaitu tempat yang berisikan perintah MOV AH,02

 

Program Stack Assembly

Secara umum stack adalah tempat peletakan sementara isi register. Stack pada file.COM terdapat di akhir segment dan ketika pertama kali dijalankan program penunjuk stack (SP) akan langsung ke byte terakhir dari segment.

Operasi Stack mempunyai dua fungsi yaitu fungsi untuk memasukan isi suatu register/variable ke dalam stack dan mengeluarkan isi register / variable dari Stack. Adapun perintah untuk memasukan isi register pada stack adalah perintah PUSH dengan tata penulisannya adalah :

PUSH [operand 16 bit]

Perintah lain untuk operasi stack adalah perintah yang berguna untuk mengeluarkan isi dari register/variable dari stack digunakan perintah POP dengan tata penulisannya adalah :

POP [operand 16 bit]

Untuk lebih jelasnya bisa anda perhatika program dibawah ini :

      1. MOV CX,009 ; Masukkan Nilai 009 ke Register CX

      2. 0110 MOV DL,31 ; Masukkan Nilai 31 ke Register DL

      3. MOV AH,02 ; Masukkan Nilai 02 ke Register AH

      4. INT 21 ; Eksekusi

      5. PUSH DX ; Masukkan DX ke Stack

      6. PUSH CX ; Masukkan CX ke Stack

      7. MOV CX,001A ; Masukkan Nilai 001A ke Register CX

      8. 0107 MOV DL,61 ; Masukkan Nilai 61 ke Register DL

      9. INT 21 ; Eksekusi

      10. INC DL ; Nilai DL Ditambahkan 1

      11. LOOP 0110 ; Mengulang Perintah Pada alamat 0110

      12. MOV DL,0D ; Massukan nilai 0D ke Register DL

      13. INT 21 ; Eksekusi

      14. MOV DL,0A ; Massukan nilai 0A ke Register DL

      15. INT 21 ; Eksekusi

      16. POP CX ; Mengeluarkan CX dari Stack

      17. POP DX ; Mengeluarkan DX dari Stack

      18. INC DL ; Nilai DL Ditambahkan 1

      19. LOOP 0107 ; Mengulang Perintah Pada alamat 0107

      20. INT 20 ; Exit Program

 

Pada baris kelima dan keenam terlihat bahwa ada perintah untuk melakukan operasi penyimpanan register ke stack dan pada baris keenambelas diambil isi stack menggunakan perintah POP. Bila digambarkan stack pada akhir segment. Disini dapat ditunjukan bahwa ketika melakukan push terhadap register DX yang seandainya berisikan bilanagan 0021 H maka pada stack akan terlihat :

 

PSP

PROGRAM

  1. 00

00 00

0000

0100

 

Penunjuk(SP) FFFD

FFFF

 

Pada saat perintah PUSH CX dengan register CX berisikan angka 0009, maka akan terlihat di Stack :

 

 

PSP

PROGRAM

09 00

  1. 00

00 00

0000

0100

 

Penunjuk(SP) FFFB

FFFD

FFFF

 

Pada saat perintah POP CX, keadaan stack akan kembali lagi pada saat tampilan stack yang pertama. Dari pembayangan diatas dapat disimpulkan bahwa pada operasi stack yang pertama masuk ke stack adalah yang terakhir keluar dari stack dan yang terakhir masuk ke stack, maka pertama yang keluar dari stack ( LIFO).