1. General purpose register
The register that stores general data is called general register ,8086CPU yes 14 Registers , They are all 16 position （bit） Of , It can be stored 2 Bytes . The general register is AX to DX Four . To ensure upward compatibility , Each of the four registers can be divided into two independent registers 8 Bit register .
for example AX Can be divided into AH and AL, That's high 8 Bit and low 8 Two registers of bit .
2. Storage of words
CPU Two sizes of data can be processed at one time .
The first is bytes （byte）, from 8bit form , Can exist 8 Bit register . The other is character （word）, It consists of two parts byte form , They are called the high and low bits of the word, respectively .
One word exists 16 Bit register , High byte and low byte are naturally stored in high byte 8 Bit and low 8 Bit register . for example AH and AL Data in , It can be regarded as a high-resolution image of font data 8 Bit and low 8 position , It can also be seen as two separate bytes （byte） Type data .
16 Binary can be represented by two digits 8 digit , such as 20000 finish writing sth. 4E20 It means that the data is generated by 4E and 20 form . If AX Store it in the library , that AH Middle is 4E,AL In China, it is 20.
3. Assembly instruction
Several basic assembly instructions :
mov ax,18: take 18 Input register AX
mov ah,78: take 78 Input register AH
add ax,8: Register AX The value in plus 8
mov ax,bx: use BX Numerical coverage in AX
add ax,bx: use BX and AX Covering the sum of values in AX
It is worth noting that the numerical value exceeds the maximum representation range , If you are using AL, Then the excess will not be stored in the AH, Because the two registers are regarded as independent units . But if you use AX, So when the value exceeds 8 After bit maximum range , The excess is stored in the high register .
How to use less than 4 Programming calculation of assembly instructions 2 Of 4 Power ?
Using the iterative method , Write the assembly statement ：
4. Physical address
CPU Before sending physical address through address bus , This address must be formed internally first .
8086 yes 16 Positional CPU, in other words , It can be handled internally at one time , What is the maximum length of information transmitted and temporarily stored 16 Positional .8086 What is the address bus width 20, If the address is sent directly from the inside , It can only be delivered 16 position , So it has to be done first CPU Internal composite address .
8086 Use physical address = Segment address *16+ Offset address to synthesize physical address . yes 16 Number of decimal , Take it 16 It's like moving to the left 1 position , This is equivalent to 2 The number of decimal is shifted to the left 4 position . So its logical meaning is ,16 The base address of the bit （ Binary ） Move left 4 position , So it can be expressed indirectly 20 Bit address .
Two 16 The address of bit is sent to address adder through internal bus , After synthesized by address adder , Through the input and output control circuit to the address bus .
Different segment addresses + Offset addresses can be combined into the same physical address .
5. Segment register
The segment address is stored in the segment register ,8086CPU Among them 4 Segment registers ：CS,DS,SS,ES.CS Combining instruction pointer register IP, Indicates the current instruction address to read . Can change CS and IP The instruction of the content is called the transfer instruction . as jump
2AE3：3, After implementation CS The content is 2AE3H,IP The content is 0003H, jump ax: take ax The data in the register is passed to the CS.
Instructions and data are binary numbers without any difference in memory , Only according to the storage location to distinguish ,CS：IP The contents of are treated as instructions .
6. Code snippet
A set of memory units can be defined as a code segment , In order to make CPU Execute this code , Need to let CS：IP Points to the first address of the code segment . Then execute the instructions in the code snippet in turn .