After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Setelah bahasa assembly diciptakan, penting untuk menentukan bagaimana caranya menggambarkan setiap instruksi dalam bentuk angka. |
This establishes a one-to-one correspondence between each instruction in the assembly language and each instruction code in the set of instruction codes. |
Ini menciptakan hubungan satu-ke-satu antara tiap instruksi dalam bahasa assembly dengan tiap kode instruksi dalam rangkaian kode instruksi. |
Converting a program from assembly language to instruction codes is called assembling, and conversion from instruction codes back into assembly language is called disassembling. |
Perubahan dari bahasa assembly yang berbentuk program ke kode-kode instruksi disebut assembling (perakitan), dan perubahan dari kode-kode instruksi kembali menjadi bahasa assembly disebut dissassembling (pembongkaran). |
Several choices we must make at this point are: |
Pada tahap ini beberapa pilihan harus ditentukan, antara lain: |
What number is used to represent each assembly language instruction? |
Angka apa yang digunakan untuk mewakili setiap instruksi bahasa assembly? |
How are instruction operands encoded? |
Bagaimana operan dalam instruksi dikodekan? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Apakah operan bagian dari kata instruksi (ingat, kata yang dimaksud di sini adalah angka), atau apakah menjadi kata-kata terpisah (angka-angka)? |
First, to answer the last question, since there are only small numbers of instructions and registers in this VM it should not be very difficult to encode all operands in a single instruction word, even if (for the sake of simplicity) I were to use a 16-bit instruction word. |
Pertama, untuk menjawab pertanyaan yang terakhir, mengingat hanya ada sedikit angka-angka pada instruksi dan register dalam VM ini maka tidak akan terlalu sulit untuk mengkodekan semua operan dalam satu kata instruksi, bahkan jika (untuk tujuan penyederhanaan) saya hendak menggunakan kata instruksi 16-bit. |
Thus, a 16-bit number written in hexadecimal has 4 digits, giving us easy access to 4 information fields, each containing 16 variations (0-9 and A-F). |
Sehingga, sebuah angka 16-bit ditulis dalam bentuk heksadesimal punya 4 digit, memberi kita akses mudah ke 4 isian informasi, masing-masing mengandung 16 variasi (0-9 dan A-F). |
The first digit of a machine word will be the instruction number. |
Digit pertama dari kata mesin akan menjadi angka instruksi. |
This gives our VM the potential for having up to 16 different instructions. |
Ini memberi VM kita potensi untuk memiliki hingga 16 instruksi berbeda. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Ini adalah jumlah kecil berdasarkan standar kekinian, tapi cukup banyak untuk contoh mesin virtual kita. |
The next three digits will be used for the operands. |
Tiga digit berikutnya akan digunakan untuk operan. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Ini bisa diterapkan dengan cara tiga operan 1-digit, dua operan 1 atau 2 digit, atau satu operan 3 digit. |
Having made these decisions, let us now establish the encoding. |
Setelah membuat keputusan tadi, mari kita buat pengkodeannya. |
Recall that we have 16 instruction numbers available. |
Ingat kembali bahwa kita punya 16 angka instruksi yang tersedia. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Instruksi berhenti akan berupa instruksi 0, dan ada alasan penting mengapa memilih 0 untuk instruksi ini. |
Since empty space in the computer's memory will most likely be filled with 0s, any run-away program will eventually encounter a 0 and attempt to execute this instruction, immediately halting the program. |
Karena ruang kosong dalam memori komputer kebanyakan diisi dengan angka 0, program manapun yang tengah berjalan akhirnya akan bertemu sebuah 0 dan coba mengeksekusi instruksi ini, hasilnya program akan berhenti. |