module 1
C (carry)
Carry holds the carry after addition or the borrow after subtraction. The carry flag also indicates error conditions, as dictated by some programs and procedures. This is especially true of the DOS function calls.
IOPL (I/0 privilege level)
IOPL is used in protected mode operation to select the privilege level for I/O devices. If the current privilege level is higher or more trusted than the IOPL, I/O executes without hindrance. If the IOPL is lower than the current privilege level, an interrupt occurs, causing execution to suspend. Note that an IOPL of 00 is the highest or most trusted: if IOPL is 11, it is the lowest or least trusted.
O (overflow)
Overflows occurs when signed numbers are added or subtracted. An overflow indicates that the result has exceeded the capacity of the machine. For unsigned operations, the overflow flag is ignored.
P (parity)
P = 0 ----for odd parity P = 1---- for even parity Parity is a count of ones in a number expressed as even or odd. If a number contains zero one bits, it has even parity. The parity flag finds little application in modern programming and was implemented in early Intel microprocessors for checking data in data communications environments.
RDI - (destination index)
RDI often addresses string destination data for the string instructions. It also functions as a 64-BIT (RDI), 32-bit (EDI) or 16-bit (DI) general-purpose register.
RDX - (data)
RDX is addressable as RDX (64 bit), EDX (32 bit), DX (16 bit), DH (higher 8 bit), or DL (lower 8 bit). RDX is a general-purpose register that holds a part of the result from a multiplication or part of the dividend before a division. In the 80386 and above, this register can also address memory data.
RFLAGS Register
RFLAGS indicate the condition of the microprocessor and control its operation. Note that the flags are upward-compatible from the 8086/8088 to the Pentium II microprocessor
RIP (instruction pointer)
RIP addresses the next instruction in a section of memory defined as a code segment. It also functions as either a 64-BIT (RIP), 32-bit (EIP) or 16-bit (IP) The instruction pointer, which points to the next instruction in a program, is used by the microprocessor to find the next sequential instruction in a program located within the code segment. The instruction pointer can be modified with a jump or a call instruction.
RSP (stack pointer)
RSP addresses an area of memory called the stack. Used as top of stack pointer. Referred to as SP (16-bit) register, ESP as a 32-bit register and RSP as a 64-bit register.
FS and GS
The FS and GS segments are supplemental segment registers available in the 80386 and above microprocessors to allow two additional memory segments for access by programs. RFLAGS Register RFLAGS indicate the condition of the microprocessor and control its operation. Note that the flags are upward-compatible from the 8086/8088 to the Pentium II microprocessor. FLAG register (16 bits) --- 8086-80286 EFLAG register (32-bit )--- 80386-80486 RFLAG register (64-bit )--- Pentium and above The flags never change for any data transfer or program control operation . It has two types of flag: status flags and control flags Status flags are: carry , parity, overflow, zero, sign, auxiliary carry Control flags are: interrupt, trap, direction etc.
ID (identification)
The ID flag indicates that the Pentium—Pentium II microprocessors support the CPUID instruction. The CPUID instruction provides the system with information about the Pentium microprocessor, such as its version number and manufacturer.
VIF (virtual interrupt flag)
The VIF is a copy of the interrupt flag bit available to the Pentium-Pentium II microprocessors.
VM (virtual mode)
The VM flag bit selects virtual mode operation in a protected mode system. This allows the system program to execute multiple DOS programs.
AC (alignment check)
The alignment check flag bit activates if a word or double word is addressed on a non-word or non-double word boundary. Only the 80486SX microprocessor contains the alignment check hit that is primarily used for synchronization.
A (auxiliary carry)
The auxiliary carry holds the carry (half-carry) after addition or the borrow after subtraction between bits positions 3 and 4 of the result. This highly specialized flag bit is tested by the DAA and DAS instructions to adjust the value of AL after a BCD addition or subtraction. Otherwise, the A flag bit is not used by the microprocessor or any other instructions.
CS (code segment register)
The code segment is a section of memory that holds the code (programs and procedures) used by the microprocessor. The code segment register defines the starting address of the section of memory holding code . In real mode operation, it defines the start of a 64K-byte section of memory. The code segment is limited to 64K bytes in the 8088-80286, and 4G bytes in the 80386 and above when these microprocessors operate in the protected mode.
DS (data segment register)
The data segment is a section of memory that contains most data used by a program. Data are accessed in the data segment by an offset address or the contents of other registers that hold the offset address.
D (direction)
The direction flag selects either the increment or decrement mode for the Dl and/or SI registers during string instructions. If D=1, the registers are automatically decremented: If D=0, the registers are automatically incremented. The D flag is set with the STD (set direction) and cleared with the CLD (clear direction) instructions.
ES (extra segment register)
The extra segment is an additional data segment that is used by some of the string instructions to hold destination data.
I (interrupt)
The interrupt flag controls the operation of the INTR (interrupt request) input pin. If I=1, the INTR pin is enabled If I= 0, the INTR pin is disabled. The state of I flag bit is controlled by the STI (set I flag) and CLI (clear I flag) instructions.
NT (nested task)
The nested task flag indicates that the current task is nested within another task in protected mode operation. This line is set when the task is nested by software
RF (resume)
The resume flag is used with debugging to control the resumption of execution after the next instruction.
S (sign)
The sign flag holds the arithmetic sign of the result after an arithmetic or logic instruction executes. If S=1, the sign bit (leftmost hit of a number) is set or negative If S=0, the sign bit is cleared or positive.
RSI (source index)
The source index register often addresses source string data for the string instructions. It also functions as a 64-BIT (RSI), 32-bit (ESI) or 16-bit (SI) general-purpose register.
SS (stack segment register)
The stack segment defines the area of memory used for the stack. The stack entry point is determined by the stack segment and stack pointer registers. The BP register also addresses data within the stack segment.
T (trap)
The trap flag enables trapping through an on-chip debugging feature. (A program is debugged to find an error or bug.) If the T flag is enabled (1), the microprocessor interrupts the flow of the program on conditions as indicated by the debug registers and control registers. If the T flag is a logic 0, the trapping (debugging) feature is disabled.
Z (zero)
The zero flag shows that the result of an arithmetic or logic operation is zero. If Z=1, the result is zero or if Z= 0, the result is not zero.
VIP (virtual interrupt pending)
VIP provides information about a virtual mode interrupt for the Pentium—Pentium II microprocessors. This is used in multitasking environments to provide the operating system with virtual interrupt flags and interrupt pending information.
RAX-(accumulator)
RAX as a 64-bit register, EAX as a 32-bit register, AX as a 16-bit register, AH as a 8 bit register (higher byte), AL as a 8 bit register (lower byte) The accumulator is used for instructions such as multiplication, division, and some of the adjustment instructions. In the 80386 and above, the RAX register may also hold the offset address of a location in the memory system.
RBX- (base index)
RBX is addressable as RBX (64 bit), EBX (32 bit), BX (16 bit), BH (higher 8 bit), or BL(lower 8 bit). The BX register sometimes holds the offset address of a location in the memory system in all versions of the microprocessor. In the 80386 and above, RBX also can address memory data.
RCX -(count)
RCX is addressable as RCX (64 bit), ECX (32 bit), CX (16 bit), CH (higher 8 bit), or CL(lower 8 bit). RCX is a general- purpose register that also holds the count for various instructions. In the 80386 and above, the RCX register also can hold the offset address of memory data.
Segment Registers
Segment registers generate memory addresses when combined with other registers in the microprocessor.