8086 CPU汇编伪操作汇总

8086 汇编中的伪操作(伪指令)是给汇编器的指令,不生成机器码,仅用于控制汇编过程、定义数据 / 段 / 符号等。以下按功能分类汇总核心伪操作,覆盖 MASM/TASM 主流用法:

一、段定义与存储模式伪操作

伪操作 功能
.MODEL 指定程序存储模式(TINY/SMALL/MEDIUM 等),简化段定义
SEGMENT/ENDS 手动定义段的开始与结束(代码段、数据段、栈段)
.CODE 简化定义代码段(配合.MODEL使用)
.DATA 简化定义数据段(配合.MODEL使用)
.STACK 定义栈段并指定大小(如.STACK 100H)
ASSUME 关联段寄存器与逻辑段(如ASSUME CS:CODE, DS:DATA)
ORG 指定当前段的起始偏移地址(如ORG 100H用于 COM 程序)

二、数据定义伪操作

伪操作 功能
DB 定义字节型数据(8 位,如NUM DB 5, 'A')
DW 定义字型数据(16 位,如ARR DW 100H, 200H)
DD 定义双字型数据(32 位,如VAL DD 12345678H)
DQ 定义四字型数据(64 位)
DT 定义十字节型数据(80 位,用于浮点)
DUP 重复定义数据(如BUF DB 10 DUP(0),定义 10 个 0 字节)
EQU 符号常量赋值(如MAX EQU 100,常量不可重定义)
= 符号赋值(可重定义,如COUNT = COUNT + 1)

三、程序结束与入口伪操作

伪操作 功能
END 标记汇编源程序结束,主模块可指定入口标号(如END START)
ENDM 结束宏定义(与MACRO配合)

四、过程与宏定义伪操作

伪操作 功能
PROC/ENDP 定义过程(子程序)的开始与结束(如MAIN PROC)
MACRO/ENDM 定义宏指令(批量指令复用,如EXIT MACRO {MOV AH,4CH; INT 21H} ENDM)
LOCAL 宏 / 过程中定义局部标号,避免重名冲突
RET 过程返回(虽为指令,但常与 PROC 配合,伪操作层面可归为过程相关)

五、模块通信伪操作

伪操作 功能
PUBLIC 声明本模块可被其他模块访问的符号(标号、过程、变量)
EXTRN 声明引用其他模块的外部符号(需指定类型,如EXTRN SUBP:PROC)
INCLUDE 嵌入指定文件内容(如头文件.inc,实现代码共享)

六、其他常用伪操作

伪操作 功能
LABEL 为内存单元定义别名与类型(如ARRAY_BYTE LABEL BYTE)
TYPE 获取数据类型的字节数(如TYPE NUM,NUM 为 DB 则返回 1)
LENGTH 获取数组元素个数(如LENGTH ARR,ARR 为10 DUP(0)则返回 10)
SIZE 获取数组总字节数(SIZE = TYPE × LENGTH)
相关推荐
水饺编程21 小时前
第2章:Linux 基础,pwd 命令
linux·c语言·汇编
半杯咖啡半行码2 天前
STM32之ARM通用汇编指令详解:从指令格式到寻址方式
汇编·arm开发·stm32
Seeing52 天前
音乐111111
汇编
Funlang2 天前
从汇编到Fun语言
汇编
l1t2 天前
DeepSeek总结的有符号、无符号、未对齐:从汇编到 SQL 的教训
汇编·数据库·sql
Hi202402178 天前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac
lhbweilai8 天前
深挖FreeRTOS内核实现(二)
c语言·汇编·stm32·单片机
水饺编程8 天前
第1章:开发环境搭建,在 Windows 中安装 VS 2019
linux·c语言·汇编·visual studio
水饺编程9 天前
第1章:下载 Linux 0.12 内核
linux·c语言·汇编·ubuntu
水饺编程9 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu