Home  >  Article  >  Why is machine language a language that computers can directly recognize and execute?

Why is machine language a language that computers can directly recognize and execute?

WBOY
WBOYOriginal
2022-08-02 15:12:186467browse

Because machine language is a set of machine instructions represented by binary code that a computer can directly recognize and execute; this set of instructions is called machine code, which is data that the computer's CPU can directly interpret. The designer gives the computer's operating functions through the computer's hardware structure.

Why is machine language a language that computers can directly recognize and execute?

The operating environment of this tutorial: Windows 10 system, DELL G3 computer.

Why is it said that machine language is a language that a computer can directly recognize and execute?

A language that a computer can directly recognize and execute is a machine language. Machine language is a set of machine instructions expressed in binary code that a computer can directly recognize and execute. This instruction set, called machine code, is data that can be directly interpreted by the computer's CPU.

Machine language is the operating function given to the computer by the computer designer through the computer's hardware structure. Machine language has the characteristics of flexibility, direct execution and high speed. The machine languages ​​of different types of computers are incompatible. A program compiled according to the machine instructions of one type of computer cannot be executed on another type of computer.

When writing programs in machine language, programmers must first memorize all the instruction codes of the computer used and the meaning of the codes. When programming, programmers need to handle the storage allocation and input and output of each instruction and each data by themselves, and they also have to remember the state of the work unit used at each step in the programming process.

This is a very tedious task, and 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. Now, except for professionals from computer manufacturers, the vast majority of programmers no longer learn machine language.

An instruction is a statement in machine language, which is a set of meaningful binary codes. The computers designed and produced by various computer companies have different instructions in the number and function, instruction format, addressing mode, and data format. It can be seen from the development process of computers that due to the rapid development of the basic hardware that constitutes computers and the rapid replacement of computers, there is a problem of how software can keep up with the hardware.

When a new machine is launched and delivered for use, only a small amount of system software (such as operating system, etc.) can be submitted to users. A large amount of software is constantly being enriched, especially applications. A considerable part of it is constantly being developed by users when using the machine. produced. In order to alleviate the problem that original applications cannot continue to be used due to the introduction of new machines, when the same series of computers produced by various computer companies, although the hardware implementation methods can be different, the instruction system, data format, I/O system, etc. remain the same , so the software is fully compatible.

Why is machine language a language that computers can directly recognize and execute?

Extended knowledge: Machine language instruction format

Machine language instruction is a binary code, It consists of two parts: operation code 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. The computer's instruction format 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 instructions: 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 instructions: 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 result is placed on the top of the stack. The addresses are all implicit, so Most instructions only have opcodes and no address fields.

  • Variable address number instructions: 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.

For more related knowledge, please visit the FAQ column!

The above is the detailed content of Why is machine language a language that computers can directly recognize and execute?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn