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
posted @ 2025-12-12 22:22  chenlight  阅读(5)  评论(0)    收藏  举报  来源