Interface Keras



1. Simulasi(kembali)



  1.coding program
2. Program


Penjelasan Coding :
 
1.;Program pergeseran led ;dengan kontrol lewat ;keyboard : keterangan
2.pa equ 300h :port a beralamat 300 heksa
3.pb equ 301h : port b beralamat 301 heksa
4.pc equ 302h: por c beralamat 302 heksa
5.cw equ 303h : conter beralamat 303 heksa
6.time equ 200 : mendeklarasikan waktu sama dengan 200
7. jmp mulai : perintag untuk melakukan lompatan ke dalam ke arah fungsi mulai
8. menu db 13,10,' Pilih' : mendefinisikan variabel per byte dan menampilkan teks pilih
9.db 13,10,' Tekan [R]' :mendefinisikan variabel per byte dan menampilkan teks tekan [r]
10. db 13,10,' Tekan [S]' : mendefinisikan variabel per byte dan menampilkan teks tekan [s]
11.db 13,10,' Tekan [ESC]':mendefinisikan variabel per byte dan menampilkan teks tekan [esc]
12.db 13,10,'$ : lamabang dolar berfungsi sebagai kata kata yang yg dicetak diatas hari=us dengan labang dolar
13.mulai : fungsi mulai
14.mov ah,09h :memasuakan 02 ke register ah
15 :lea dx,menu
16. int 21h :interup yang berfungsi menghentikan kerja
17. kembali: fungsi kembali
18. mov ah,0 :memasukan/meimindahkan nilai 0 pada register ah
19. int 16h : mengolah masukan dari keyboard secara BIOS
20. cmp al,1bh :.mmebandingkan 1bh dengan register al
21. je keluar :Perintah ini berlaku bila pada saat pembandingan kedua operand sama.
22. or al,20h :untuk melakukan operas! OR pada suatu' operand. Sifat OR adalah bila salah satu atau kedua operandnya mengandung unsur 1, maka hasil OR tersebut adalah 1. Sedang bila kedua operandnya tidak terdapat unsur 1, maka hasilnya adalah 0
23. cmp al,'r' :membandingkan teks r dengan register al
24. jne kembali :perintah apabila nilai tidak sama maka akan melompat ke fungsi kembali
25. mov al,80h:memasukan/memindahkan80h ke register al
26. mov dx,cw : memasukan/memindahkan conter ke data register
27. out dx,al :mengirimkan nilai register al ke regiser data dx
28.rcr al,1 : mengeser register al sebanyak 1kalidan kemudian bit tertinggi Operandl akan diganti    dengan carry flag
29. call delay : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
30. call cek :mengalihkan pengoperasian ke cek untuk melakukan  intruksi call
31. call out :mengalihkan pengoperasian ke out untuk melakukan  intruksi call
32. loop kanan0  :memindahkan pointer operasi ke daerah yang ditunjukkan oleh kanan0
33.  loop awal : memindahkan pointer operasi ke awal
34. keluar: fungsi keluar
35.  int 20h :  untuk menghentikan kerja suatu program.
36. Out : fungsi out
37.  mov dx,pa : memasukan/memindahkan port a ke data register (dx)
38.  out dx,al : memasukan nomor register al ke register dx
38.  mov dx,pb :memasukan/memindahkan port b ke register data register (dx)
40.  out dx,al :mengirimkan satu byte atau satu word data ke port register al
41.  Ret : instruksi yang berguna untuk mengemba-pointer operasi dari sebuah subrutin ke program induk pemannggil
42. Delay : fungsi delay
43.  push cx :untuk menaruh conter register (cx) pada stack
44. mov cx,time :memasukan/memindahkan waktu ke register conter register (cx)
45.  push cx :untuk menaruh conter register (cx) pada stack
46. mov cx,1000h :memasukan/memindahkan nilai heksa (1000) ke  conter register (cx)
47. loop b : memindahkan pointer operasi ke b
48.  pop cx :  mengambil bilangan dari stack. Hasil pengambilan akan ditaruh di conter register (cx)
49.  loop a : memindahkan pointer operasi ke b
50.  pop cx :mengambil bilangan dari stack. Hasil pengambilan akan ditaruh di conter register (cx)
51.  Ret :  instruksi yang berguna untuk mengemba-pointer operasi dari sebuah subrutin ke program induk pemananggil
52. call delay : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
53.  mov al,11111000b : memasukan/memindahkan nilai biner ke  register al
54.  call out : mengalihkan pengoperasian ke out untuk melakukan  intruksi call
55. awal : fungsi awal
56.  mov cx,8 : memasukan/memindahkan nilai 8  ke  conter register (cx)
57. kanan1 : fungsi kanan1
58.  shr al,1 :untuk menggeser bit dari register al sebanyak 1 kali
59.  call delay : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
60.  call cek : mengalihkan pengoperasian ke cek untuk melakukan  intruksi call
61.  call out : mengalihkan pengoperasian ke out untuk melakukan  intruksi call
62.  loop kanan1 :memindahkan pointer operasi ke fungsi kanan1
63.  mov cx,5 : memasukan/memindahkan nilai 5  ke  conter register (cx)
64. kiri0: fungsi kiri0
65.  Stc :  untuk membuat Carry Flag menjadi on.
66.  rcl al,1 :  menggeser register al ke kiri sebanyak 1 kali dan kemudian bit terendah dari register al akan diganti dengan carry flag
67.  call delay : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
68.  call cek : mengalihkan pengoperasian ke cek untuk melakukan  intruksi call
69.  call out : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
70.  loop kiri0  : memindahkan pointer operasi ke fungsi kiri0
71.  mov cx,8 : memasukan/memindahkan nilai 8  ke  conter register (cx)
72. kiri1 : fungsi kiri1
73.   shl al,1 : menggeser bit dari register all sebanyak 1 kali.
74.  call delay : mengalihkan pengoperasian ke delay untuk melakukan  intruksi call
75.  call cek : mengalihkan pengoperasian ke cek untuk melakukan  intruksi call
76.  call out : mengalihkan pengoperasian ke out untuk melakukan  intruksi call
77.  loop kiri1 : memindahkan pointer operasi ke fungsi kiri1
78.  mov cx,5 : memasukan/memindahkan nilai 5  ke  conter register (cx)
79. kanan0: fungsi kanan0
80.  Stc: untuk membuat Carry Flag menjadi on.
81. cek: fungsi cek
82.  push ax : untuk menaruh acumolator register (cx) pada stack
83.  Mov ah,6 : memasukan/memindahkan nilai 6  ke register al
84. Mov dl,0ffh : memasukan/memindahkan nilai heksa(0ff)h  ke data register (dx)
85. int 21h  : interrupt yang berisi fungsi yang sangat kompleks yang diberikan oleh DOS.
86.  Cmp al,27 : mebandingkan nilai 27 dengan register al
87. keluar0: je keluar : pada fungsi keluar0 akan terjadi peloncatan/melanjutkan ke baris selajutnya apabila nilai keluar tidak sama
88.  or al,20h :untuk melakukan operasi OR pada suatu operand
23.  cmp al,'s'  :mebandingkan teks s dengan register al
89.  jne run : melompat ke fungsi run
90. stop: fungsi stop
91.  mov ah,6 : memasukan/memindahkan nilai 6  ke register ah
92.  mov dl,0ffh : memasukan/memindahkan nilai heksa (0ff)h  ke register dl
93.  int 21h :interrupt yang berisi fungsi yang sangat kompleks yang diberikan oleh DOS.
94.  cmp al,27 :mebandingkan nilai 27 dengan register al
95.  je keluar0 : melompat jika nilai fungsi keluar0 tidak sama
96.  or al,20h : untuk melakukan operasi OR pada suatu operand
97.  cmp al,'r' :mebandingkan teks r dengan register al
98.  jne stop :melompat ke fungsi stop
99. run: fungi run
100. pop ax : mengambil bilangan dari stack. Hasil pengambilan akan ditaruh di acumulator register (ax)
101.  Ret : instruksi yang berguna untuk mengemba-pointer operasi dari sebuah subrutin ke program induk pemananggil



Tidak ada komentar:

Posting Komentar