The language that can be directly recognized by computers is "machine language". Machine language is a language directly abbreviated by computer instruction code and expressed in binary. It is the only language that a computer can directly recognize and execute.
The operating environment of this tutorial: Windows 7 system, Dell G3 computer.
The language that computers can directly recognize and execute is "machine language".
Machine language is a programming language or instruction code that can be directly recognized by the machine without translation. Each operation code has a corresponding circuit inside the computer to complete it, or it can be completed without translation. A programming language or instruction code that is directly understood and accepted by the machine. Machine language uses absolute addresses and absolute opcodes. Different computers have their own machine languages, that is, instruction systems. From a usage perspective, machine language is the lowest level language.
An instruction is a statement in machine language. It is a set of meaningful binary codes. The basic format of the instruction is such as the operation code field and the address code field. The operation code specifies the operation nature and function of the instruction. , the address code gives the operand or the address of the operand.
Machine language instruction is a binary code consisting of two parts: opcode and operand. The opcode specifies the operation of the instruction. It is a keyword in the instruction and cannot be defaulted. The operand represents the operand of the instruction. [2] The instruction format of a computer has a great relationship with the machine's word length, memory capacity and instruction function. From the perspective of facilitating program design, increasing parallelism of basic operations, and improving instruction functionality, instructions should contain a variety of information. However, in some instructions, because part of the information may be useless, this will waste the storage space occupied by the instruction and increase the number of memory accesses, which may actually affect the speed. Therefore, how to design the instruction format reasonably and scientifically so that the instruction can not only give enough information, but also make its length match the word length of the machine as much as possible, so as to save storage space, shorten the value time, and improve the performance of the machine. This is an important issue in instruction format design.
Computers process various data by executing instructions. In order to indicate the source of data, the destination of operation results and the operations performed, an instruction must contain the following information:
(1) Operation code. It specifies the nature and function of the operation. A computer may have dozens to hundreds of instructions, each instruction has a corresponding operation code, and the computer completes different operations by recognizing the operation code.
(2) The address of the operand. The CPU can obtain the required operands through this address.
(3) Storage address of the operation result. The result of processing the operand is saved at this address for reuse.
(4) The address of the next instruction. When executing a program, most instructions are fetched from the main memory in order and executed. Only when a transfer instruction is encountered, the execution order of the program will change. In order to compress the length of the instruction, a program counter (ProgramCounter, PC) can be used to store the instruction address. Every time an instruction is executed, the instruction address of the PC is automatically set to 1 (assuming that the instruction only occupies one main memory unit), indicating the address of the next instruction to be executed. When a transfer instruction is encountered, the transfer address is used to modify the contents of the PC. Due to the use of PC, the address of the next instruction to be executed does not need to be explicitly given in the instruction.
An instruction actually includes two kinds of information, namely operation code and address code. The operation code (OperationCode, OP) is used to represent the operation to be completed by the instruction (such as addition, subtraction, multiplication, division, data transfer, etc.). Its length depends on the number of instructions in the instruction system. The address code is used to describe the operand of the instruction. It either directly gives the operand, or indicates the memory address or register address of the operand (that is, the register name).
The instruction includes two parts: the opcode field and the address field. According to the number of addresses involved in the address field, the common instruction formats are as follows.
① Three-address instruction: A1 and A2 in the general address field determine the first and second operand addresses respectively, and A3 determines the result address. The address of the next instruction is usually given sequentially by the program counter.
② Two-address instruction: A1 in the address field determines the first operand address, and A2 determines the second operand address and the result address at the same time.
③Single address instruction: A in the address field determines the address of the first operand. Fixed use of a certain register to store the second operand and operation result. Their addresses are therefore implicit in the instructions.
④Zero address instruction: In a stack computer, the operands are generally stored in the two units on the top of the push-down stack, and the results are placed on the top of the stack, and the addresses are implicit. Therefore, most instructions only have opcodes and no address fields.
⑤Variable address number instruction: The number of addresses involved in the address field changes with the operation definition. For example, the number of addresses in the instructions of some computers can be as few as 0 and as many as 6.
Expand knowledge:
To write programs in machine language, programmers must first memorize all the instruction codes of the computer used and the meaning of the codes. When hand-programming, programmers have to handle the storage allocation and input and output of each instruction and data by themselves, and they also have to remember the state of the work unit used in each step of the programming process. This is a very tedious job. The time it takes to write a program is often dozens or hundreds of times longer than the actual running time. Moreover, the programs compiled are all instruction codes of 0s and 1s, which are not intuitive and prone to errors. Except for professionals from computer manufacturers, the vast majority of programmers no longer learn machine language.
Related recommendations: "Introduction to Programming"
The above is the detailed content of What language can be directly recognized by computers?. For more information, please follow other related articles on the PHP Chinese website!