Microcomputer Principle x86 Learning

Source: Internet
Author: User
Tags relative valid

Basic Knowledge Point finishing

Why learn 8086 assembly language for the most thorough hardware control, the memory is small, run fast understanding of the structure of the computer and the work process of the tool 8086 instruction system is the basic set of the whole x86 series CPU instruction, backward compatible application is extensive, the data is easy to find

Computer Components , Controller (CPU), memory, input (IO device)

The bus data and the control bus are bidirectional, and the address bus is unidirectional.

coprocessor coprocessor, which is a processor developed and applied to assist the central processor in its inability to perform or perform inefficient and ineffective processing. It is necessary to note that because the integer and floating-point operators are already integrated in the current computer, the floating-point processor is not considered a secondary processor. the coprocessor built into the CPU is also not a secondary processor, unless it exists independently. A processor that specializes in floating-point numbers is called a floating-point processor or coprocessor

pipelining technology refers to parallel operations

command Queue command queue under x86 only 6 bytes

internal structure bus Interface Unit instruction prefetch Unit instruction decoding Unit instruction execution Unit Segment Management Unit page snap-in unit cache unit floating point arithmetic unit

Register Prerequisite Knowledge Basic Register : General register, instruction pointer register, flag register, segment register. system-Level registers : Control registers, System address register Debug and test register Debug Registers

the number of bits in the x86 series processor 8086 is 8-bit processor 8088 is a 16-bit processor 386 processor is a watershed representation of the era of formally entering the 32-bit processor

Storage related because the 8086/8088 register is 16 bits, the maximum value that can be stored is 2 of 16 2^16=65536=64k 8086/8088 memory 1MB address space can be divided into 64K segments, Each segment is 16 bytes, with a minimum of 16 segments, each of which is 64KB.

segment Correlation 8086 is divided into four segments (cs/ds/ss/es) with a maximum capacity of 64KB per segment. Each segment is a separate addressable logical unit for storing programs and data each logical segment is floating in memory, which can be contiguous, spaced, completely overlapped, partially overlapped, and the physical address of a storage unit can belong to a logical segment, or it can belong to several logical segments 8086/ 80,881 programs can only access up to four segments CS SS DS ES Segment registers are 16-bit, 64K code 16-bit segment Base shift 4-bit plus offset address is 20-bit physical address. Each storage unit has only one physical address, but it can be made up of different segment base and offset addresses

processor three operating mode real address mode (16-bit 1M (2 of 20-square) address) protected mode (physical memory 2 32-square 64G, virtual memory 2 46-square) virtual 8086 mode

segmented management of storage units for 1MB memory in x86 real mode

x86 data storage in the x86 system, the address is high data, low address is lower data ( small-end mode )

several common data-length memories 2 of the 10 is 1K 2 16 is 64K 2 is 20 times 1M 2 is 30 times is 1G 2 32 is 4G

The stack- related stack is where we temporarily store the data in the stack operation two, the stack and the stack. * * The address of the stack is reduced, and the address of the stack is added. The stack is manipulated in words (2 bytes) * *.
Also note the distinction:arm's word is 32 bits.

486 Seven data types unsigned binary number signed binary number floating point BCD code string ASCII pointer data

Addressing method immediate number addressing
The immediate number can only be used as the source operand and cannot be used as the target operand; the number preceded by a~f must be prefixedwith the number 0. Avoid confusion with other symbols (e.g., 0af22h) register addressing
The source operand is the same as the destination operation number, and the same register addressing is irrelevant to the segment address (MOV CX, Es:ax) It is wrong to write. Memory addressing
Direct addressing
The bracket is the offset address, BX does not add special description is the DS segment (segment base) is usually implied BP non-special description is the SS register indirect addressing
The valid address of the operand (offset address) is placed in the register, and the register name must be in square brackets. Use register: Base register BX, base point pointer Register BP, variable address register SI, DI operand physical addresses = 10hxds+bx/si/di or = 10hxss+bp Eg:mov Ax,[si] about default segment: BP is inside SS, remaining three bx/si/ DI is a relative register indirect addressing in the DS
Register Si and Di, BP, and BX cannot appear simultaneously in [] base address and address addressing relative base addresses

Immediate addressing: The number we're looking for is in the instructions.
Direct addressing: We're going to find the number of addresses in the instructions.
Register addressing: The number I'm looking for is in the Register,
Register indirection: The address of the number I'm looking for is in the register.

The way to determine the address: a register is the register address, the parentheses are indirect, before a number is a relative

There are three main operand operands: Immediate number operand, register operand, and memory operand. The number of immediate operands is the form of constants that we commonly use, with particular attention to the number of immediate numbers that can only be used for the source operand. Also note the value range: 8-bit unsigned 00H ~ FFH, signed 80h~7fh. 16-bit unsigned 0000h~ffffh, signed 8000H~7FFFH

Number of register operands, 16-bit operand: AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, ES, SS
8-bit operand: AH, AL, BH, BL, CH, CL, DH, DL

Memory operand: Byte, word, double word

other scattered knowledge points all addresses refer to the memory address instruction period is the time to execute an instruction the base register has BX,BP, the variable address register has the DS SI EA to add the final address value, indicating that the valid address means the valid address refers to the offset address The immediate number is not directly sent to the segment register, the immediate number must first be delivered to a normal register, and then sent to the segment register. the address is in x86, and it has two address spaces. One is the memory address where the data and instructions are placed, and the other is the IO address as input and output. the address of Io is 16 bits, which is 64K address . 64K addresses can be sent directly if they are less than 255 or 8-bit addresses, but if greater than 8 bits need to be transmitted with a DX. The flag register is not directly the result of the XLAT check table instruction of MOV is placed register Al IPV4 is a 128-bit address, IPV6 is the address

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.