x86 Glossary of Terms

Location of a data item in memory. Also see Linear address, Physical address.
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.
The placement of data or code on a specific address boundary (i.e. a 2, 4, or 8 byte evenly divisible address).
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.
American Standard Code for Information Interchange. A standard code for representing English characters and symbols with various extensions for foreign characters.
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.
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.
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.
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.
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.
A binary digit. Can be a zero or a one.
A data type consisting of 8 bits.
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.
A data type that is the same as a byte.
A simple error detection scheme where values are added (summed) into a variable to be compared with a similar previously calculated value.
A small piece of semiconducting material on which an electronic circuit is placed. A CPU chip is also known as a microprocessor.
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.
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.
Control Program for Microcomputers. An operating system originally designed for 8080 and Z-80 based computers.
See Central Processor Unit.
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.
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.
A program that allows executing, monitoring and modifying a program's code and data to enable a programmer to locate program errors (or bugs).
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.
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.
The constant part of an effective address (EA).
Disk Operating System. Also called MS-DOS or PC-DOS.
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.
A data type consisting of a double word or 32-bits.
See Effective Address
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.
A program that attempts to emulate, or work the same as, another program or machine.
See Little-endian and Big-endian.
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.
An exception that is called with the return address on the stack of the instruction that caused the fault.
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.
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.
See Floating Point Unit.
A frequency of one cycle per second.
High Level Language. Such as C, Basic, Pascal and Fortran.
Abbreviation for Hertz.
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.
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.
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.
See Interrupt Vector Table
An identifier used in assembly language programs to specify a memory address by name rather than by its actual numerical address.
See Local Descriptor Table.
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.
The complex process of combining object files and hooking, or linking together, subroutines or data in one file that are referenced in another file.
A program that links one or more object files into an executable program file, usually a .EXE file.
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.
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.
A million hertz; A million cycles per second.
A computer processor fully contained on one integrated circuit (or chip).
Part of a program, usually one file, containing one or more procedures or subroutines and/or data values.
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.
4 bits. There are two nibbles in a byte. (Also nybble)
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.
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.
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.
See Operating System.
Packed BCD:
Packed Binary Coded Decimal. A data format that stores one decimal digit in each nibble of a byte.
A 4K-byte block of memory. This is the size of memory block used for 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.
The process of issuing two instructions at the same time to each of the U and V pipelines of the Pentium.
16 bytes of memory.
An error detection system commonly used in data communications where the sum of the set bits in a data packet is odd or even.
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.
A channel, or connection, for data to enter or leave the CPU.
One of several machine language codes that can be placed in front of other instructions to modify their actions or default conditions.
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.
Another term for assembler directives.
A data type consisting of 8 bytes or 64-bits.
Random Access Memory. The read/write memory used by the computer, usually consisting of DRAM chips.
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.
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.
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.
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.
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.
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
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.
A CPU that can complete more than one instruction per machine cycle.
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.
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