Basics of Assembly Language Programming

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/36

flashcard set

Earn XP

Description and Tags

Flashcards covering the basics of Assembly Language Programming (ALP), 8086 instruction sets, assembler directives, and program syntax.

Last updated 5:23 PM on 8/5/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

37 Terms

1
New cards

Machine language

A processor-level language consisting only of strings of 11's and 00's used to manage arithmetical, logical, and control activities.

2
New cards

Assembly language

A low-level, architecture-specific programming language that represents instructions in symbolic code and is converted into machine code by an assembler.

3
New cards

Assembler

A utility program, such as MASM, TASM, GAS, or NASM, used to convert assembly language into executable machine code.

4
New cards

Registers

Processor components that hold data and addresses during the execution of a program.

5
New cards

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.

6
New cards

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.

7
New cards

BSS section

A section in assembly code defined by "section .bss" used specifically for declaring variables.

8
New cards

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.

9
New cards

Opcodes

Short for operation codes, these are executable instructions that tell the processor what to do, each generating one machine language instruction.

10
New cards

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.

11
New cards

Macros

A text substitution mechanism used within assembly language programs.

12
New cards

Mnemonic

The name of the instruction to be executed, representing the first part of a basic instruction statement.

13
New cards

ASSUME

An 8086 directive that provides information to the assembler regarding the name of the program or data segment for a specific segment.

14
New cards

DD (Define Double word)

A directive that initializes single or multiple data items in the form of double words, which are 44 bytes in size.

15
New cards

DQ (Define Quad words)

A directive used to initialize quad words, which are 88 bytes in size.

16
New cards

DUP (Duplicate)

A directive that allows the initialization of multiple locations with repeated characters or variables.

17
New cards

PROC

A directive used to define the starting point of a procedure or subroutine.

18
New cards

FAR

A type specifier used by the assembler to declare an intersegment call, or a call from a different segment.

19
New cards

NEAR

A specifier used for an intrasegment call, which is a call within the same segment.

20
New cards

EVEN

A directive that informs the assembler to align data starting from an even address to optimize accessing speed.

21
New cards

MOV instruction

A data transfer instruction that copies a byte or word from a source to a destination without affecting the flag register.

22
New cards

PUSH instruction

An instruction that decrements the stack pointer by 22 and then stores a word of data from a source operand onto the stack.

23
New cards

POP instruction

An instruction that loads a word from the stack pointed to by the stack pointer (SPSP) into a destination and then increments SPSP by 22.

24
New cards

XCHG instruction

An instruction used to exchange the contents of source and destination registers of the same type (byte or word).

25
New cards

XLAT instruction

A lookup table instruction that loads the contents of the address DS:BX+AL\text{DS:BX+AL} into the ALAL register.

26
New cards

LEA (Load Effective Address)

An address transfer instruction that copies the offset or memory address of a source variable to a destination register.

27
New cards

NEG

A logical instruction that computes the 22's complement of the destination operand.

28
New cards

CMP (Compare Instruction)

An instruction that compares two operands by computing their difference to set the CFCF, ZFZF, and SFSF flags without modifying the operands.

29
New cards

ADC (Add with Carry)

An addition instruction that adds the carry flag bit along with the source and destination operands.

30
New cards

INC instruction

An increment instruction that adds 11 to the contents of a single destination operand.

31
New cards

SBB (Subtract with Borrow)

An instruction that subtracts the source data and the carry flag bit from the destination's data.

32
New cards

MUL

An arithmetic instruction for the multiplication of two unsigned numbers.

33
New cards

IMUL

An arithmetic instruction that allows the multiplication of two signed operands.

34
New cards

DIV

An instruction that performs the division of two unsigned operands, storing the quotient and remainder in specific registers like AXAX and DXDX.

35
New cards

IDIV

An instruction used for division operations between two signed numbers.

36
New cards

Near jump

A conditional jump where the Instruction Pointer (IPIP) points to a memory address inside the current code segment, leaving the CSCS register unchanged.

37
New cards

Far jump

An unconditional or conditional branch where the program counter jumps to a memory location outside the current code segment.