文档详情

微机原理与第12讲 .ppt

发布:2017-10-02约字共94页下载文档
文本预览下载声明
第十二讲 汇编语言程序设计 过程属性 过程名具有三种属性。(与标号相同) 段属性: 为该过程所在段的段基址。 偏移地址属性: 指该过程第一个字节与段首址之间距离字节。 距离属性: NEAR或FAR 格式中的属性就指距离属性,定义NEAR允许过程在段内调用,定义FAR允许过程在段间调用,NEAR为缺省使用。 过程定义语句的格式: PROCEDURE_NAME PROC [NEAR] 或 PROCEDURE_NAME PROC FAR . . . RET PROCEDURE_NAME ENDP 过程定义的例子: MY_CODE SEGMENT PROCEDURE_NAME PROC FAR . . . RET PROCEDURE_NAME ENDP START: . . . CALL PROCEDURE_NAME . . . CALL PROCEDURE_NAME . . . HLT MY_CODE ENDS END START 4.3 伪指令语句 伪指令语句没有对应的机器代码,并不像指令语句那样由CPU来执行,它是由MASM汇编程序对源程序汇编期间进行处理的。主要完成变量定义,存储器分配,指示程序开始和结束,段定义,段分配等。 伪指令的类型 伪指令语句有如下几种类型: 数据定义语句 DB,DW,DD 标号赋值语句 EQU,= 段定义语句 SEGMENT…ENDS 段分配语句 ASSUME 过程定义语句 PROC…ENDP 程序开始结束语句 ORG,END,NAME 串搜索指令SCAS 语句格式:① SCASB——字节串搜索 ② SCASW——字串搜索 功能:AL(字节)或AX(字)中的内容与DI所指的目的串中的一个字节(或字)存储单元中的数据相减,根据相减结果设置标志位,结果不保存, 即:① 字节操作:(AL)-([DI]),字操作:(AX)-([DI])。 ② 修改指针使之指向串中的下一个元素。 当DF=0时,(DI)增量。当DF=1时,(DI)减量。 从源串中取数指令LODS 语句格式:① LODSB——从字节串中取数 ② LODSW——从字串中取数 功能:将SI所指的源串中的一个字节(或字)存储单元中的数据取出来送入AL(或AX)中。 即:① 字节操作:([SI])→AL,字操作:([SI])→AX。 ② 修改指针SI,使它指向串中的下一个元素。 当DF=0时,(SI)增量。当DF=1时,(SI)减量。 往目的串中存数指令STOS 语句格式:① STOSB——往字节串中存数 ② STOSW——往字串中存数 功能:将AL或AX中的数据送入DI所指的目的串中的字节(或字)存储单元中。 即:① 字节操作:(AL)→[DI],字操作:(AX)→[DI]。 ② 修改指针DI,使之指向串中的下一个元素。 当DF=0时,(DI)增量)。当DF=1时,(DI)减量。 (7) 宏汇编和条件汇编 宏指令是源程序中一段独立的程序段,首先对它进行定义,然后就可用宏指令语句多次调用它了。 宏指令的使用包括三个方面: 宏定义 宏调用 宏展开 宏定义 指令使用前必须先进行宏定义 宏定义格式为: 宏指令名 MACRO 形式参数,形式参数,… ………. 宏体 ………. ENDM 宏体:一段有独立功能的程序代码段。 形式参数:又称为哑元,各个哑元之间用逗号隔开。 宏调用 经宏定义后的宏指令可以在源程序中调用,宏调用格式为: 宏指令名 实参,实参 … 宏调用需要有宏指令名 若宏定义中有形参,那么宏调用时必须带有实际参数来替代形参,实际参数
显示全部
相似文档