1/36
Flashcards covering the basics of Assembly Language Programming (ALP), 8086 instruction sets, assembler directives, and program syntax.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Machine language
A processor-level language consisting only of strings of 1's and 0's used to manage arithmetical, logical, and control activities.
Assembly language
A low-level, architecture-specific programming language that represents instructions in symbolic code and is converted into machine code by an assembler.
Assembler
A utility program, such as MASM, TASM, GAS, or NASM, used to convert assembly language into executable machine code.
Registers
Processor components that hold data and addresses during the execution of a program.
Execution cycle
Also known as the fetch-decode-execute cycle, it is the process through which the processor fetches instructions from memory, decodes them, and executes them.
Data section
A section in assembly code defined by "section .data" used for declaring initialized data, constants, file names, or buffer sizes that do not change at runtime.
BSS section
A section in assembly code defined by "section .bss" used specifically for declaring variables.
Text section
A section defined by "section .text" that contains the actual code and must begin with the "global _start" declaration to indicate the entry point for program execution.
Opcodes
Short for operation codes, these are executable instructions that tell the processor what to do, each generating one machine language instruction.
Assembler directives
Also known as pseudo-ops or pseudo-opcodes, these are non-executable instructions that control the assembly process and provide information to the assembler but not to the processor.
Macros
A text substitution mechanism used within assembly language programs.
Mnemonic
The name of the instruction to be executed, representing the first part of a basic instruction statement.
ASSUME
An 8086 directive that provides information to the assembler regarding the name of the program or data segment for a specific segment.
DD (Define Double word)
A directive that initializes single or multiple data items in the form of double words, which are 4 bytes in size.
DQ (Define Quad words)
A directive used to initialize quad words, which are 8 bytes in size.
DUP (Duplicate)
A directive that allows the initialization of multiple locations with repeated characters or variables.
PROC
A directive used to define the starting point of a procedure or subroutine.
FAR
A type specifier used by the assembler to declare an intersegment call, or a call from a different segment.
NEAR
A specifier used for an intrasegment call, which is a call within the same segment.
EVEN
A directive that informs the assembler to align data starting from an even address to optimize accessing speed.
MOV instruction
A data transfer instruction that copies a byte or word from a source to a destination without affecting the flag register.
PUSH instruction
An instruction that decrements the stack pointer by 2 and then stores a word of data from a source operand onto the stack.
POP instruction
An instruction that loads a word from the stack pointed to by the stack pointer (SP) into a destination and then increments SP by 2.
XCHG instruction
An instruction used to exchange the contents of source and destination registers of the same type (byte or word).
XLAT instruction
A lookup table instruction that loads the contents of the address DS:BX+AL into the AL register.
LEA (Load Effective Address)
An address transfer instruction that copies the offset or memory address of a source variable to a destination register.
NEG
A logical instruction that computes the 2's complement of the destination operand.
CMP (Compare Instruction)
An instruction that compares two operands by computing their difference to set the CF, ZF, and SF flags without modifying the operands.
ADC (Add with Carry)
An addition instruction that adds the carry flag bit along with the source and destination operands.
INC instruction
An increment instruction that adds 1 to the contents of a single destination operand.
SBB (Subtract with Borrow)
An instruction that subtracts the source data and the carry flag bit from the destination's data.
MUL
An arithmetic instruction for the multiplication of two unsigned numbers.
IMUL
An arithmetic instruction that allows the multiplication of two signed operands.
DIV
An instruction that performs the division of two unsigned operands, storing the quotient and remainder in specific registers like AX and DX.
IDIV
An instruction used for division operations between two signed numbers.
Near jump
A conditional jump where the Instruction Pointer (IP) points to a memory address inside the current code segment, leaving the CS register unchanged.
Far jump
An unconditional or conditional branch where the program counter jumps to a memory location outside the current code segment.