After the assembly language is created it is necessary to determine how to represent each instruction as a number. |
Setelah bahasa assembly dibuat, diperlukan penentuan cara untuk mewakili setiap perintah sebagai 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. |
Hal ini membangun korespondensi satu-satu antara satu perintah dalam bahasa assembly dengan setiap kode instruksi dalam kelompok 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. |
Proses mengonversi sebuah program dari bahasa assembly menjadi kode perintah dinamakan assembling, dan konversi dari kode instruksi kembali menjadi bahasa assembly dinamakan disassembling. |
Several choices we must make at this point are: |
Beberap pilihan yang harus kita buat di titik ini adalah: |
What number is used to represent each assembly language instruction? |
Apa nomor yang digunakan untuk mewakili setiap perintah bahasa assembly? |
How are instruction operands encoded? |
Bagaimana operand perintah ditulis dalam kode? |
Are operands part of the instruction word (remember, by word I mean number), or are they separate words (numbers)? |
Apakah operand bagian dari kata perintah (ingat, kata di sini berarti nomor), ataukah mereka kata (nomor) yang terpisah? |
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-tama, untuk menjawab pertanyaan terakhir, karena hanya sedikit jumlah instruksi dan register dalam VM ini, seharusnya tidaklah sulit untuk menuliskan dalam bentuk kode semua operand dalam satu kata perintah, walaupun (supaya sederhana) saya seharusnya memakai kata perintah 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). |
Maka, sebuah nomor 16-bit yang ditulis dalam heksadesimal memiliki 4 angka, sehingga memberikan kita akses yang mudah kepada 4 bidang informasi, masing-masing mengandung 16 macam (0-9 dan A-F). |
The first digit of a machine word will be the instruction number. |
Angka pertama dari sebuah kata mesin adalah nomor perintah. |
This gives our VM the potential for having up to 16 different instructions. |
Hal ini memberikan MV kita potensi untuk memiliki hampir 16 perintah yang berbeda. |
This is a small amount by contemporary standards, but it is plenty for our example virtual machine. |
Hal ini masih tergolong kecil jika dibandingkan dengan standar kontemporer, tetapi ini masih cukup banyak untuk contoh mesin virtual kita. |
The next three digits will be used for the operands. |
Tiga angka berikutnya akan digunakan untuk operand. |
These can be used as three 1-digit operands, two operands of 1 and 2 digits, or a single 3-digit operand. |
Ini bisa digunakan dengan cara: tiga operand masing-masing 1 angka, dua operand masing-masing berisi 1 dan 2 angka, atau satu operand berisi 3 angka. |
Having made these decisions, let us now establish the encoding. |
Setelah menentukannya, mari kita buat tulisan kodingnya. |
Recall that we have 16 instruction numbers available. |
Ingat bahwa kita hanya memiliki 16 nomor perintah yang tersedia. |
The halt instruction will be instruction 0, and there is an important reason for choosing 0 for this instruction. |
Perintah berhenti berupa perintah 0, dan ada suatu alasan untuk 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 kemungkinan besar akan diisi oleh angka 0, setiap program yang melarikan diri akan akhirnya menemukan angka 0 dan mencoba untuk menjalankan perintah ini, sehingga langsung menghentikan program. |