80X86伪指令

 8086 伪指令表

一、数据定义伪操作

伪 指 令 名 称
语 句 格 式
功 能

定义字节类型的数据存储区
[变量名] DB 表达式[,…]
定义一个以变量名为首址的字节类型数据存储区,所含数据元素的个数由其后表达式的个数所决定,数据存储单元的初值由对应表达式的值给出

定义字节类型的数据存储区
[变量名] DW 表达式[,…]
同上,只是定义的为字类型的数据存储区

定义双字类型的数据存储区
[变量名] DD 表达式[,…]
同上,只是定义的为双字类型的数据存储区

定义四字类型的数据存储区
[变量名] DD 表达式[,…]
同上,只是定义的为四字类型的数据存储区

定义十字类型的数据存储区
[变量名]DT表达式[,。。。]
同上,只是定义的为十字节类型的数据存储区

定义记录类型数据存储区
定义记录
记录名RECORD字段名:宽度[=表达示]{,…}

说明:每天个记录可包含多个字段,字段的宽度指字段值所占的存储位数(1-16),各字段
定义一个给定名字的记录,但并不分配存储单元

定义记录存储区
[变量名] 记录名 <表达式[,表达式]>
定义一个以变量名为首地址的、类型为某记录的数据存储区,所含记录的个数由其后表达式的个数所决定,各字段的值由对应表达式的值给出

定义结构类型数据存储区
定义结构
结构名STRUC

<数据定义语句序列>

结构名 ENDS

说明:结构内数据定义语句中的变量名也称为结构字段名
定义一个给定名字的结构,通过结构的定义说明了结构字段名的存在,但并不分配存储单元

定义结构存储区
结构变量名 结构名 <字段值表>
定义一个以结构变量名为首地址的、类型为某结构的数据存储区,结构中各字段的值由字段值表按序给出




二、符号定义伪操作

伪指令名称
语句格式
功能

等 价
符号名 EQU 表达式
用来为常量,表达式及其它各种符号定义一个等价的符号名,但并不分配存储单元

等 号
符号名 = 表达式
同上,只是等号语句能对同一符号名再定义

定义符号名
变量名或符号LABEL类型
为当前存储单元定义一个指定类型的变量或符号




三、定义段、组、过程的伪操作

段定义
段名SEGMENT [定位方式] [组合方式] ’类别’


定义了一个以SEGMENT伪指令开始,以ENDS伪指令为结束,给定段名的段

段结束
段名 ENDS

假定
ASSUME段寄存器:段名[,段寄存器:段名]或ASSUME NOTHING说明:其中的”段名”是程序中某一已定义段(或组)的名字,也可以是表达式”SEG变量或标号”
用来设定段寄存器与段之间的对应关系,也可以用来采取消段寄存器与段之间的对应关系(使用NOTHING时)

组定义
组名GROUP段名[,段名]说明:其中的”段名”也可以是表达式”SEG变量或标号”
将模块中若干个段集合成一个组

(≤64KB),并赋予一个组名,这样,组内各段之间的跳转都可以看作是段内跳转,组名也可以作为直接量或跨段前缀使用





附录F 8086 伪指令表 ·304·

续表

伪 指 令 名 称
语 句 格 式
功 能

过程定义
过程名PROC[NEAR]或FAR
定义了一个以PROC开始,以ENDP伪指令为结束的,给定过程名的过程

过程结束
过程名ENDP





四、程序模块的定义与通信伪操作

伪 指 令 名 称
语 句 格 式
功 能

定义模块名
NAME模块名
将本语句所在的,以END伪指令为结束的源程序定义成给定名字的模块

源程序(模块)结束
END[表达式]
该语句只能为源程序的最后一个语句,用以标志整个源程序(模块)的结束,如果后面带表达式,则为该程序的启地址

说明公共符号
PUBLIC符号[,…]
用来说明其后的符号是公共符号,可以被其他模块调用

说明外部符号
EXTRN符号:类型[,…]
用来说明其后的符号是外部符号,这些外部符号必须在他说定义的模块中被说明成公共符号且类型必须与定义时的类型一致




五、宏定义伪操作

伪 指 令 名 称
语 句 格 式
功 能

宏定义
宏指令名MACRO形式参数[,形式参数]
宏定义的开始语句,用来定义一个给定名字的宏指令

宏定义结束
ENDM
用来标志宏定义的结束或重复操作的结束

产生特殊符号
LOCAL 形式参数[,形式参数]
让宏汇编程序自动为其后的形式参数顺序生成特殊符号(范围从??0000~??FFFFH)并用这些符号来取代宏体中的形参

取消宏定义
PURGE宏指令名[,宏指令名]
取消指定的宏定义

终止宏扩展
EXITM
终止MACRO调用或重复操作(REPT,IRP,IRPC

),立即退出扩展体,扩展体得剩余部分或重复就不执行了




六、重复汇编及条件汇编伪操作

伪 指 令 名 称
语 句 格 式
功 能

给定次数的重复汇编
REPT表达式
重复块的开始语句,表示要将重复块重复汇编表达式所指定的次数

不定次数的
IRP形式参数,<实在参数1,…,实在参数N>
重复块的开始语句,表示要将重复块重复汇编由实参个数所给定的次数

重复汇编
IRPC形式参数,字符串
重复块的开始语句,表示要将重复块重复汇编由字符串长度所给定的次数

测试表达式的值
正条件:IF数值表达式,反条件:IFE数值表达式,说明:反条件指测试为真的条件与正条件正好相反,在功能说明栏中,圆括号中的内容为反条件
条件汇编块的开始语句,表示如果表达式的值不为0为真,汇编其后的语句,否则为假,汇编[ELSE]后面的语句,如果[ELSE]不存在,则直接汇编ENDIF后面的语句

测试符号是否定义
正条件:IFDEF符号

反条件:IFNDEF符号
功能同上,只是测试条件为:如果其后符号以被定义(未定义)为真,否则为假

测试扫描次数
正条件:IF1

反条件:IF2
功能同上,只是测试条件为:如果是第一(或第二)遍扫描为真,否则为假

测试参数是否为空
正条件:IFB(参数)

反条件:IFNB(参数)
功能同上,只是测试条件为:如果该参数对应的实参存在(不存在)为真

测试字符串是否相等
正条件:IFIDN(参数1),(参数2)

反条件:IFIDN)(参数1),(参数2)
功能同上,只是测试条件为:如果字符串参数1与字符串参数2相等(不等)为真,否则为假

条件汇编结束
ENDIF
用来标志条件汇编块的结束




七、换页控制、列表控制伪操作

伪指令名称
语句格式
功 能

输出标题
TITLE正文
为源程序指定标题(≤60个字符)供列表文件输出

输出子标题
SUBTTL正文
用在标题之后指定一个小标题,其字符个数不限,但每行均要以SUBTTL开头,如果SUBTTL不带正文,则表示要取消前面的字标题




附录 F 8086 伪指令表 ·305·

续表

伪指令名称
语句格式
功 能

注释
COMMENT定界符 文本定界符
为程序作注释且不用加分号,其中文本字符个数不限,还可以是多行,只要在定界符之间即可,定界符是除空格以外的符号,必须在首尾同时出现

换页
PAGE
使汇编列表文件输出时换页(每页66行,每行80列)

PAGE页长,页宽
使汇编列表文件按指定的页长(只每页所含行数,可以是10~255),页宽(指每行所含列数,可以是60~132)输出

PAGE+
使汇编列表文件输出时的章号加1

汇编列表文件输出控制
.LIST
充许从该行开始的源文件及目标代码全部在汇编列表文件中输出(该伪质指令的功能为系统隐含状态),直到遇到。XLIST伪指令为止用来指定从该行开始的源程序及目标代码不在汇编列表文件中输出,直到遇到,LIST伪指令为止。

.XLIST

宏展开列表输出控制
.LALL
充许在汇编列表文件中列出所有宏扩展内容,包括不产生目标代码的语句。

.XALL
用来指定在汇编列表文件中仅列出产生目标代码的宏扩展内容(系统的隐含状态)

.SALL
用来指定在汇编列表文件中不列出任何宏扩展的内容。

符号交叉引用文件输出控制
.CREF
充许从该行起的内容在符号交叉引用文件中输出,直到遇到。XCREF伪指令为止(系统隐含壮态)

.XCREF
用来指定从该行开始的内容不在符号叉引用文件中输出,直到遇到。XCREF伪指令为止。

输出正文
%OUT正文
在汇编期间,其后正文送显示器显示。





八、其它伪操作

伪 指 令 名 称
语 句 格 式
功 能

置汇编地址计数器
ORG数值表达式
将汇编地址计数器置成数值表达式所给定的值

置偶地址边界
EVEN
将汇编地址计数器的值调整成偶数

基数控制
RADIX数值表达式说明:该数值表达式的值要以十进制表示。
用来指定其后语句中所出现不带数据类型后缀的数具有数值表达式所指定的基数(2~16),该伪指令对DD,DQ,DT数据定义伪指令不起作用。

将指定文本加入源文件
INCLUDE文本文件名
将指定的文本文件加入当前源文件中一起汇编

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery慢慢啃之选择器(二)

1.$("#myDiv");ID匹配一个元素 <span id"foo[bar]"></span> $("#foo\\[bar\\]);//转义 2.$("div");//元素标签名匹配 3.$(".myClass"); css类名匹配 4.$("*") 匹配所有元素&#xff0c;多用于结合上下文…

iOS学习之基本概念

学习iOS最重要的是态度和兴趣&#xff0c;如果你对于学习始终抱有不断的热情和端正的态度&#xff0c;那么&#xff0c;无论是什么&#xff0c;你总会成功的&#xff01; 有一句话与大家共勉&#xff1a;过程中跌倒多少次都没有关系&#xff0c;重要的是&#xff0c;跌倒后你能…

Win32ASM代码基本模块

;-------------------------------------------------------------------------------- ;程序环境设置 .386 .model flat,stdcall option casemap:none ;-------------------------------------------------------------------------------- ;头文件与库文件导入 include windo…

ORA-16038: log 3 sequence# 103 cannot be archived

[sizelarge]今天在自己机器做了个实验&#xff0c;插入10万条&#xff0c;由于空间少&#xff0c;重启数据库时出现&#xff1a; [sizex-large]SQL> startup ORACLE instance started. Total System Global Area 188743680 bytes Fixed Size 1218460 byte…

Win32ASM学习[23]:RadASM快捷键

RadASM快键操作 一.书签 SHIFTF8为所在行下书签或删除书签(Crtl0-9能定义存于文件中的10个书签)&#xff0c; 可通过编辑\书签\开关书签。&#xff08;CRTLF8为下一书签&#xff0c;F8为上一书签&#xff09; 二、列选择&#xff1a; 拉框时用到&#xff0c;CRTLB为切换行…

SAP MM/FI 自动过账实现 OBYC 接口执行

一. 自动过账原理 在MM模块的许多操作都能实现在FI模块自动过账&#xff0c;如PO收货、发票验证(LIV)、工单发料、向生产车间发料等等。不用说&#xff0c;一定需要在IMG中进行配置才可以实现自动处理。但SAP实现的这种自动配置的机制是怎样的呢&#xff1f;其实也并不复杂&…

JAVA 字符处理

/** * 分割字符串 * * param str String 原始字符串 * param splitsign String 分隔符 * return String[] 分割后的字符串数组 */ SuppressWarnings("unchecked") public static String[] split(String str, String splitsign) { int index; if (str null || …

Win32ASM-进程学习【1】

关于一些进程的概念就不说了。。。 一创建进程GreateProcess (1).当一个进程被创建时: ①.系统为进程创建一个内核对象,并将这个对象的计数设置为1,进程对象只是一个比较小的数据结构,可以通过进程句柄来引用 ②.系统为进程创建一个虚拟地址空间,并将可执行文件装载到这个地…

Object-C,NSArraySortTest,数组排序3种方式

晚上回来&#xff0c;继续写Object-C的例子&#xff0c;今天不打算写iOS可视化界面的程序&#xff0c;太累了。刚刚dady又电话过来&#xff0c;老一套&#xff0c;烦死了。其实&#xff0c;我一直一个观点&#xff0c;无论发生什么事情&#xff0c;不要整天一副不开心的样子。开…

android中listview的一些样式设置

在Android中&#xff0c;ListView是最常用的一个控件&#xff0c;在做UI设计的时候&#xff0c;很多人希望能够改变一下它的背景&#xff0c;使他能够符合整体的UI设计&#xff0c;改变背景背很简单只需要准备一张图片然后指定属性 android:background"drawable/bg"&…

Win32ASM-进程学习【2】

获取运行中的句柄 1.从窗口句柄中获取进程句柄 要对进程进行某种操作,就必须首先知道该进程的句柄或者进程ID 对于自己创建的子进程来说CreateProcess函数返回了子进程句柄和进程的ID 但是如果如果要对系统中运行的某个进程进行操作,那么首先获取他们的句柄才行 如果知道某个…

完美解决IE8有两个进程的问题

完美解决IE8有两个进程的问题&#xff0c;照以下方法设置后就只有一个进程了&#xff0c;没有什么负影响哦&#xff01; 方法&#xff1a; 1、winR&#xff0c;在运行框里输入&#xff1a;gpedit.msc&#xff0c;回车进入组策略设置。 2、依次展开&#xff1a;计算机配置——管…

【转】gvim配置及相关插件安装

0.准备软件及插件。(a)gvim72.exe 地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。(b)vimcdoc-1.7.0-setup.exe 地址http://prdownloads.sourceforge.net/vimcdoc/vimcdoc-1.7.0-setup.exe?download(c)ec57w32.zip 地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip(…

Win32ASM-进程学习[3]-读写进程空间

invoke ReadProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesReadinvoke WriteProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesWritten hProcess 指定将要被读写的目标进程句柄 lpBaseAddress 目标进程中被读写的起始线性地址. …

MongoDB使用记录

安装服务 使用以下命令将MongoDB安装成为Windows服务。笔者的MongoDB目录为D:\Program Files\mongodb mongod --logpath "D:\Program Files\mongodb\data\logs.txt" --logappend --dbpath "D:\Program Files\mongodb\data" --directoryperdb --serviceName…

OC基础知识

Object C 语言基础 第一节总括 这一节是对Objective-C(以后简称OC)的简要介绍,目的是使读者对OC有一个概括的认识。 1.面象的读者 在阅读本文之前,应具备使用与C类似的编程语言(如C,C,JAVA)的一些经验,同时熟悉面向对象编程。 2.OC简介 OC是以SmallTalk为基础&#xff0c;建立…

Windows使用筛选器来处理异常

很久木有管博客了 最近也没有学什么 Dos系统下发生异常后,系统会调用int 24h服务例程,然后根据中断的返回值决定下一步要做什么,他会在屏幕上显示ignore Retry Fail Abort 让用户选择进而进行下一步操作 这样的话 只要应用程序截取int 24h中断,就可以随意的"胡作非…

Android 高级编程 RecyclerView 控件的使用

RecyclerView 是Android 新添加的一个用来取代ListView的控件&#xff0c;它的灵活性与可替代性比listview更好。 看一下继承关系&#xff1a; ava.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.support.v7.widget.RecyclerViewKnown Direct …

Android下点亮LED

http://blog.csdn.net/cpj_phone/article/details/43562551转载于:https://www.cnblogs.com/Ph-one/p/4276974.html

SEH处理异常

Win32为每个线程定义了一个线程信息块,其中保存了线程的一些属性数据,线程信息块的属性被定义为NT_TIB结构 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberDa…