编辑: ok2015 | 2019-07-11 |
第四章 汇编语言程序格式 §4.
1 汇编语言语句种类§4.2 伪操作§4.3 汇编语言程序格式§4.4 汇编语言的上机过程 §4.1 汇编语言语句种类
一、指令语句
二、伪指令语句
三、宏指令 使CPU产生动作、并在程序执行时才处理的语句,就是第3章学习的处理器指令书写格式[标号:] 指令助记符 [DEST[ ,SRC]] [;
注释]标号:一条指令的符号地址.可以省略,如有必须以 : 作为结束标志.在程序段或子程序段的第一条指令处可使用标号,以在程序需要时转移到该处时,以标号的形式引用.
一、指令语句
二、伪指令语句 (Directive)――不产生CPU动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等伪指令与具体的处理器类型无关,但与汇编程序的版本有关[名字] 伪指令 [操作数] [;
注释]名字段:与标号相区别,不带 : 标号/名字的命名 根据用途,由字母、数字、专用符号? - $@组成约定:最长31个字符第一个字符不能是数字?可出现在标号的任意位置,但?、 $不能单独使用 . 只能出现在起始位置一个程序中,每个标识符的定义是唯一的,且不能与任何保留字相同 §4.2 伪操作
一、处理器选择伪操作
二、段定义伪操作
三、程序开始和结束伪操作
四、数据定义及存储器分配伪操作
五、表达式赋值伪操作
六、地址计数器及对准伪操作
七、基数控制伪操作
一、处理器选择伪操作 . 8086;
选择8086指令系统. 286;
选择80286指令系统.
286 P;
选择保护方式下的80286指令系统. 386;
选择80386指令系统.
386 P;
选择保护方式下的80386指令系统. 486;
选择80486指令系统.
486 P;
选择保护方式下的80486指令系统. 586;
选择Pentium指令系统.
486 P;
选择保护方式下的Pentium 指令系统
二、完整段定义伪操作 程序的段结构 段定义段寻址(指定当前段)段寄存器的装入
二、完整段定义伪操作 段名SEGMENT 定位 组合 '
类别'
……;
语句序列段名ENDS 段定义由SEGMENT和ENDS这一对伪指令实现,SEGMENT伪指令定义一个逻辑段的开始,ENDS伪指令表示一个段的结束段定义指令后的4个关键字用于确定段的各种属性,堆栈段要采用stack组合类型如果不指定,则采用默认参数;
但如果指定,注意要按照上列次序
二、完整段定义伪操作―段定位(align)属性 表示对逻辑段起始边界的选择,可为:PAGE 段从一个页边界开始 (XXX00H,256Bytes/Page) PARA段节边界开始(XXXX0H)DWORD段从一个4倍数地址开始WORD 段从一个偶地址开始BYTE 段可以从任意单元开始完整段定义伪指令的默认定位属性是PARA
二、完整段定义伪操作―段组合(combine)属性 指定多个逻辑段之间如何连接与定位,可为: PRIVATE 本段与其他段没有连接关系,这是完整段定义伪指令默认的段组合方式 PUBLIC 在满足定位关系的前提下,连接程序把本段与所有同名段相邻地连接在一起,形成新的逻辑段.(可在程序的不同位置及不同的文件中使用段定义语句定义一个逻辑段) COMMON 产生一覆盖段,两个同名段起始地址相同,用较长的段覆盖较短的段
二、完整段定义伪操作―段组合(combine)属性 STACK把所有的同类别段连接在一起,段基值→SS,且自动为SP初始化.在一个程序中一般应该有一个堆栈段. AT 表达式 AT 0930H ;