x86 Glossary of Terms

Address:
Location of a data item in memory. Also see Linear address, Physical address.
AGI:                                 
Address Generation Interlock. On the 486 and Pentium processors the pipeline is stalled for one cycle if a component of an address is loaded or calculated in the previous machine cycle.
Arithmetic Logic Unit:
The portion of the CPU that performs the integer operations such as ADD, SUB, AND, OR and CMP.
Alignment:
The placement of data or code on a specific address boundary (i.e. a 2, 4, or 8 byte evenly divisible address).
ALU:
See Arithmetic Logic Unit.
Arithmetic Logic Unit:
The portion of the CPU that performs the integer operations such as ADD, SUB, AND, OR and CMP.
ASCII:
American Standard Code for Information Interchange. A standard code for representing English characters and symbols with various extensions for foreign characters.
Assembler:
A program that translates an assembly language program to machine language (or object code).
Assembly Language:
A programming language, based on the architecture of a particular machine, where most statements translate into one machine instruction.
Base address:
The address at the start of a structure or of data array.
Base register:
A register that contains a base address. Usually BX (EBX) or BP (EBP) is a base register. For 16-bit code the base register must be BX or BP, for 32-bit code any of EAX, EBX, ECX, EDX, ESI, EDI, EBP or ESP.
Base:
Also See base address. In number systems, used to specify the number of digits in a system, i.e. base 10 has ten digits, base 2 has two, etc.
BCD:
Binary Coded Decimal. See also Packed BCD. This is a format for encoding base 10 numbers where the low order 4 bits are used to store the numercial value.
Big-endian:
A method of storing multi-byte data types where the low-order byte is stored at the highest address and the high-order byte is stored at the lower address.
BIOS:
Basic Input/Output System. Built-in software (usually stored in ROM) that is used to start up the computer and controls low-level functionality of devices such as the keyboard, screen, disks and I/O ports.
Bit:
A binary digit. Can be a zero or a one.
Byte:
A data type consisting of 8 bits.
Cache:
A small fast memory buffer that holds a copy of the most recently used or most active portions of the larger slower memory. Also see Disk Cache.
Central Processor Unit:
The main processing unit in a computer. Sometimes referred to as the processor, the chip or the computer.
Character String:
A data type that is an array of characters. Usually followed by a byte of 0 in assembly language or C.
Character:
A data type that is the same as a byte.
Checksum:
A simple error detection scheme where values are added (summed) into a variable to be compared with a similar previously calculated value.
Chip:
A small piece of semiconducting material on which an electronic circuit is placed. A CPU chip is also known as a microprocessor.
CISC:
See Complex Instruction Set Computer.
Clock Speed:
The speed that a processor executes instructions.
Code Segment:
The addressable area of memory defined by the segment in the CS register.
Compiler:
A program that translates a high level language (such as C, Pascal or Fortran) into machine language or sometimes into assembly language.
Complex Instruction Set Computer:
Processors designed with many complex and sometimes irregular instructions, especially instructions that access memory operands and operate on them. The 80x86 architecture is considered CISC. See RISC.
CP/M:
Control Program for Microcomputers. An operating system originally designed for 8080 and Z-80 based computers.
CPU:
See Central Processor Unit.
CRC:
Cyclic redundancy check. A complex error detection scheme, similar to a checksum, but each value is operated on in a position-dependent manner. This increases the reliability of the error detection.
Cycles:
Periodic pulses created by an electronic clock that causes CPU activity.
Data Segment:
The addressable area of memory defined by the segment in the DS register.
Data Structure:
A scheme for organizing related data items.
Debugger:
A program that allows executing, monitoring and modifying a program's code and data to enable a programmer to locate program errors (or bugs).
Directive:
An assembler statement that contains information for the use of the assembler rather than an instruction to be assembled and executed as part of the program.
Disassembler:
A program that attempts the difficult task of reconstructing an assembly language source file from machine language.
Disk Cache:
A program and/or areas of memory set aside keep frequently used or most recently used data from a disk for quicker access.
Displacement:
The constant part of an effective address (EA).
DOS:
Disk Operating System. Also called MS-DOS or PC-DOS.
DRAM:
Dynamic RAM. The type of memory chip used in most computers. It is called dynamic because it must continually be refreshed or the contents will be lost.
Dword:
A data type consisting of a double word or 32-bits.
EA:
See Effective Address
Editor:
A program that allows the user to create and edit files.
Effective Address:
The combination of any or all of a base register, index register and displacement used to produce an offset within a segment.
Emulator:
A program that attempts to emulate, or work the same as, another program or machine.
Endian:
See Little-endian and Big-endian.
Exception:
A forced call to an interrupt routine that handles error conditions.
External Cache:
A memory cache not physically located on the same chip as the CPU.
Extra Segment:
The addressable area of memory defined by the segment in the ES register.
Far Pointer:
A reference to memory consisting of a segment and an offset. In real mode the segment is the upper 16 bits of a 20-bit segment starting address. In protected mode the segment is a selector.
Fault:
An exception that is called with the return address on the stack of the instruction that caused the fault.
File:
An organized collection of data or information, usually stored on a disk with a specific name or filename.
Flat Model:
A program model where all segment registers are the same and are usually set to be larger than 64K segments.
Floating Point Unit:
The portion of the 80486 or Pentium that performs the floating point operations like the floating point processor.
FPP:
See Floating Point Processor.
Floating Point Processor:
A floating point math processor. The processing unit that performs IEEE 754 floating point arithmetic on 32-bit, 64-bit and 80-bit signed numbers with exponents.
FPU:
See Floating Point Unit.
Hertz:
A frequency of one cycle per second.
HLL:
High Level Language. Such as C, Basic, Pascal and Fortran.
Hz:
Abbreviation for Hertz.
IEEE:
Institute of Electrical and Electronic Engineers. An organization best known for developing electrical and electronic standards for the computer industry.
Index register:
A register that contains an index value. Usually SI (ESI) or DI (EDI) is an index register. For 16-bit code the index register must be SI or DI, for 32-bit code any of EAX, EBX, ECX, EDX, ESI, EDI or EBP.
Integer:
A positive whole number, negative whole number or zero. On computers integers have a limited range, for example byte integers have a range of -128 to +127.
Interpreter:
A program that executes another program by reading each program statement and interpreting the actions to be taken.
Interrupt Handler:
A routine specifically designed to respond to an interrupt.
Interrupt Vector Table:
An array of 256 far pointers to interrupt handlers. Located at address 0000:0000.
I/O:
Input/Output.
IVT:
See Interrupt Vector Table
Label:
An identifier used in assembly language programs to specify a memory address by name rather than by its actual numerical address.
LDT:
See Local Descriptor Table.
Library:
A collection of programs or subroutines stored in object file format, usually in a .LIB file.
Linear Address:
A 20-, 24-, or 32-bit address into a large unsegmented memory space. With paging (virtual memory) disabled the linear address is the physical address. With paging enabled the paging mechanism translates the linear address to a physical address.
Link:
The complex process of combining object files and hooking, or linking together, subroutines or data in one file that are referenced in another file.
Linker:
A program that links one or more object files into an executable program file, usually a .EXE file.
Little-endian:
A method of storing multi-byte data types where the low-order byte is stored at the lowest address and the high-order byte is stored at the highest address. The Intel 80x86 processor use this format.
Logical Address:
A segment and offset combine to generate a logical address. The segmentation unit translates the logical address into a linear address.
Long Integer:
See integer. An integer data format consisting of 32-bits.
Machine Language:
The binary codes that a machine (CPU) can execute.
Mask:
A bit pattern constructed to be logically combined with a data value to allow only some bits of the original data value to show through (i.e. the others are masked out).
Math Coprocessor:
A floating point math processor. Termed a "co-processor" when added as an optional separate chip.
MegaHertz:
A million hertz; A million cycles per second.
Mhz:
MegaHertz.
Microprocessor:
A computer processor fully contained on one integrated circuit (or chip).
Module:
Part of a program, usually one file, containing one or more procedures or subroutines and/or data values.
MS-DOS:
Microsoft DOS (Disk Operating System).
Near Pointer:
A reference to memory containing only the offset portion of the address. The offset must be combined with a segment or selector in one of the segment registers.
Nibble:
4 bits. There are two nibbles in a byte. (Also nybble)
NPX:
Numerical Processor Extension. Original name for the 8087 floating point co-processor.
Numeric Coprocessor:
A floating point math processor.
Object code:
An intermediate form of machine language produced by assemblers and compilers that is structured so that it can be linked together.
Offset:
A 16-bit number that specifies the byte number beyond the start of a segment. On the 80386 and above segments may have 32-bit offsets.
Operand:
Data provided in a register, in memory or immediately with an instruction to be used in the processing of the instruction.
Operating System:
The program(s) that load applications and control access to memory, disk files, I/O ports, etc., such as DOS, Windows, OS/2 and UNIX.
OS:
See Operating System.
Packed BCD:
Packed Binary Coded Decimal. A data format that stores one decimal digit in each nibble of a byte.
Page:
A 4K-byte block of memory. This is the size of memory block used for paging.
Paging:
A method of managing memory, by an operating system, to implement a virtual memory system. Pages of memory are stored on a disk when not in use and recalled later when needed.
Pairing:
The process of issuing two instructions at the same time to each of the U and V pipelines of the Pentium.
Paragraph:
16 bytes of memory.
Parity:
An error detection system commonly used in data communications where the sum of the set bits in a data packet is odd or even.
PC-DOS:
Personal Computer DOS. IBM's version of MS-DOS.
Physical Address:
The actual hardware address of memory issued by the processor. The maximum physical address is determined by the number of address pins on the processor.
Port:
A channel, or connection, for data to enter or leave the CPU.
Prefix:
One of several machine language codes that can be placed in front of other instructions to modify their actions or default conditions.
Processor:
Short for microprocessor. The part of the computer that actually performs the arithmetic, logical and control functions of a computer.
Protected Mode:
A CPU mode where memory address ranges are protected from being read and/or written to by unauthorized segments of code.
Pseudo-op:
Another term for assembler directives.
Quadword:
A data type consisting of 8 bytes or 64-bits.
RAM:
Random Access Memory. The read/write memory used by the computer, usually consisting of DRAM chips.
Re-entrant:
A quality of a procedure or program that allows it to be interrupted and called or run again and both logical instances remain intact and properly execute independently of each other.
Real Mode:
The only CPU mode of the 8088 and 8086 and the startup mode for the 80286 and above. There is no memory protection as in the protected mode.
Register:
A storage area in a CPU. Each register usually has a number of operations that can be directly performed on it by the CPU, unlike a memory storage location.
Reduced Instruction Set Computer:
Processors designed with the general concepts of a load/store architecture, few addressing modes, many registers, fixed length instructions and the "simple is faster" design criteria.
Segment Override:
A prefix for an instruction that causes a segment register, other than the normal default segment register to be used during the execution of the following instruction.
Segment:
Real mode: A portion of memory specified by a 20-bit starting address of which the low 4 bits are always zero and whose length can be up to 64K. Protected mode: A portion of memory described by a descriptor table entry.
Selector:
In protected mode, a pointer to a segment descriptor. A selector is a 16-bit value and is used in protected mode instead of a paragraph address in a segment register.
SRAM:
Static RAM. Faster and more stable than DRAM, but requires more power and is more expensive. Usually used in memory caches.
Stack Segment:
A portion of memory pointed to by the stack segment register for use as the system stack.
Stack:
A last-in first-out data data structure in memory used for saving return addresses, temporary variables and system status information. A system can have any number of stacks, but only one may be in use at any time
String:
Any consectutive bytes of memory can be a string. HLL's specify rules for defining strings. In the C language strings must end with a byte containing a value of zero.
Superscalar:
A CPU that can complete more than one instruction per machine cycle.
Task:
One of many programs currently executing or waiting to execute in a multi-tasking system.
Two's Complement:
A mathematical operation where a binary value is multiplied by -1. Each bit is changed to the opposite value and then one is added to the entire value.
Unsigned Integer:
A positive whole number or zero. On computers unsigned integers have a limited ranged, for example an 8-bit unsigned integer has a range of 0 to 255.
V86 Mode:
See Virtual-8086 Mode.
Virtual Memory:
A scheme used that allows programs to logically allocate and use more memory than is physically available by moving and swapping portions that are not currently needed or infrequently used to a hard disk.
Virtual-8086 Mode:
A mode on 386 and above processors that provides for the emulation of the 8086 architecture. An operating system may run a mix of protected mode tasks amd virtual-8086 mode tasks.
Word:
A data type consisting of two bytes or 16 bits. (On non-x86 architectures a word usually refers to a data element the size of the accumulator and registers, typically 32 bits.

Home Page    e-mail to Quantasm     Order form    Site Map