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
相关推荐
渡我白衣10 小时前
C++可变参数队列与压栈顺序:从模板语法到汇编调用约定的深度解析
c语言·汇编·c++·人工智能·windows·深度学习·硬件架构
旧梦吟1 天前
脚本语言 汇编
汇编
iCxhust1 天前
8088单板机C语言汇编混合编程实验方法与步骤
c语言·汇编·单片机·嵌入式硬件·微机原理
元亓亓亓2 天前
考研408--组成原理--day8--汇编指令&不同语句的机器级表示
开发语言·汇编·c#
缘友一世2 天前
计算系统安全速成之机器级编程(数组和指针)【3】
汇编·计算机组成原理·数组和指针
切糕师学AI2 天前
ARM 汇编指令:LDR
汇编·arm开发
询问QQ688238863 天前
探索多虚拟电厂联合调度优化模型:集中式算法的实践
汇编
草莓熊Lotso3 天前
C++11 核心特性实战:列表初始化 + 右值引用与移动语义(附完整代码)
java·服务器·开发语言·汇编·c++·人工智能·经验分享
西西弗Sisyphus4 天前
读第三方程序的变量的原理
汇编