微原-第3章 宏指令

上传人:kms****20 文档编号:50947858 上传时间:2018-08-11 格式:PPT 页数:23 大小:153.50KB
返回 下载 相关 举报
微原-第3章  宏指令_第1页
第1页 / 共23页
微原-第3章  宏指令_第2页
第2页 / 共23页
微原-第3章  宏指令_第3页
第3页 / 共23页
微原-第3章  宏指令_第4页
第4页 / 共23页
微原-第3章  宏指令_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《微原-第3章 宏指令》由会员分享,可在线阅读,更多相关《微原-第3章 宏指令(23页珍藏版)》请在金锄头文库上搜索。

1、本教案内容第3章 8086CPU指令 系统n汇编语言指令n8086指令分 类n数据与转移地 址的寻址方式n数据传送类指 令n算术运算类指 令n逻辑运算类指 令n移位类指令n标志位操作指 令9.转移指令10.循环控制 指令11.子程序调 用返回指令12.中断调用返 回指令13.字符串操作 指令14.I/O输入输 出指令15.其它指令16.宏指令3.15 其它指 令处理器控制指令(5条)1空操作指令NOP 格式: NOP 说明:空操作指令NOP(No operation)表示 什么也不做,但要占用机器的三个时钟周期, 利用NOP指令可以构成适当的延时操作。3.15 其它指 令2. 暂停指令HLT

2、格式: HLT 说明:暂停指令HLT(Halt until interrupt or reset)可以使CPU进入暂停状态,退出暂停状态的条 件有: pRESET信号有效,即CPU进行复位操作; pNMI (非屏蔽中断请求)信号有效,即系统收到了非 屏蔽的中断请求,这时系统必须进行适当的处理; pINTR (可屏蔽中断请求)信号有效,而且IF1,这 时要求系统响应该指定请求。 适当的使用HLT指令,并与硬件电路配合,可以使CPU 与外部设备协调工作。3.15 其它指 令3等待指令WAIT 格式: WAIT 说明:等待指令WAIT(Wait for pin active )可以使CPU处于等待状

3、态,这时CPU会定期测 试8086/8088芯片的引脚,当它为高电平时, 则继续等待,并且每隔5个时钟周期对线的状 态进行测试,直到线上出现低电平时,CPU退 出等待,并顺序执行下一条指令。 3.15 其它指令4总线锁定指令LOCK格式: LOCK 说明:总线锁定指令LOCK(Lock bus during next instruction)可以保持总 线的使用权,它放在其它指令之前,表 示在执行这组指令期间,使别的设备不 能使用外部总线。3.15 其它指令5换码指令ESC 格式: ESC CODE,DATA 说明:换码指令ESC(Escape to external processor)可以

4、完成多处理器之间的指令和 数据交换,在8086/8088CPU与其它处理器配合 使用时,利用该指令可以将任务分配给其它的 处理器,CODE是一个事先规定的6位指令码, 表示完成相应的操作,DATA表示要送给其它处 理器的数据。 3.16 宏指令宏指令是用户自己定义的指令,它是由 指令和伪指令构成的一个程序段。用户要采用宏指令时,必须先定义后调 用。宏指令是指用一个标识符(称为宏指令名 )来表示指定的一段程序,在调用该宏指令时 可以在程序汇编时展开成相应的程序段(这一 过程称为宏展开)。因此宏指令在汇编时并没 有相对应的指令代码.宏指令名 MACRO ;宏定义开始伪指令ENDM ;宏定义结束伪指

5、令宏体(由指令语句组成的能 完成某一特定功能的一段程序)3.16 宏指令一、宏指令的定义3.16 宏指令为一个标识符,即定义的宏指令的名称;为宏体中使用的参数,它允许宏指令中具有待 定的参数,在宏调用时必须用实际的参数代替它,因此每 次宏指令调用时可以通过改变实际参数而改变宏指令的功 能,使宏指令的设计更加灵活。宏指令可有多个形式参数,它们之间以逗号间隔,但总长 度不得超过132。调用时,实际参数的个数和类型必须与形 式参数一致。 汇编程序允许两者的个数可以不相等: 当实际参数多于形式参数时,多余的实际参数将被忽略; 当实际参数少于形式参数时,则多余的形式参数被置为空 ;宏指令也可以不带任何形

6、式参数。3.16 宏指令二、宏调用与宏展开 宏调用的格式:宏指令名 注意:实际参数应该与宏指令定义时的形式参数一一 对应。宏展开: 在汇编过程中,当汇编到宏调用语句时,将用宏体中 的 一段程序来代替这一条宏指令,并且用实际参数取代 形 式参数。在汇编过程产生的LST(列表)文件中,可 看到 宏展开语句的前面有一个“+”号或其它符号,以表 示与其 它指令的区别。3.16 宏指令例3.41 设计对通用寄存器左移4位的宏指令 。 解:设形式参数REG表示任一个调用寄存器, 则宏指令LSHIFT4定义为:LSHIFT4 MACRO REGMOV CL,4SHL REG,CL ENDM 这样,在程序中,

7、如果要对BX的内容左移4位 ,则可以直接采用: LSHIFT4 BX 如果要对DL的内容左移4位,则可以直接采用 : LSHIFT4 DL3.16 宏指令例3.43 设计对通用寄存器的左移、右移N位的宏指 令。 解:宏指令SHIFTN定义为: SHIFTN MACRO N, REG, CC MOV CL, N S&CC REG, CL ENDM 这里REG表示任一个调用寄存器,N表示移位次数,CC 表示移位方式: wCC取HR时,表示采用SHR移位; wCC取HL时,表示采用SHL移位; wCC取AR时,表示采用SAR移位; wCC取AL时,表示采用SAL移位; 符号 “&”为连接符,表示字符

8、串CC与S直接连接。3.16 宏指令三、宏指令中的标号与变量 当宏指令定义中出现标号或变量定义语句时, 由于多次调用会出现相同的标号或变量的定义 ,从而导致汇编出错,因此,这时应该采用伪 指令LOCAL将宏指令中的来标号或变量指定为 局部标号或变量,这样在宏展开时,系统会自 动将其中标号或变量赋以新的标识符,约定依 次采用“?0000”、 “?0001”、 “?0002”等等。局部标号或变量的定义格式为:LOCAL 标号或变量3.16 宏指令例:源程序中多次需要将不同寄存器中的十六进制转换为 相应的ASCII码时,则可以定义以下宏指令: HEXASC MACRO REGCMP REG,0AHJ

9、C L1ADD REG,07HL1: ADD REG 30HENDMLOCAL L1HEXASC AL HEXASC BL+CMP AL,0AH +JC L1 +ADD AL,07H +L1:ADD AL,30H +CMP BL,0AH +JC L1 +ADD BL,07H +L1:ADD BL,30H?0000+?0000:?0001+?0001:3.16 宏指令四、重复宏 重复宏是一种伪指令,它指示汇编程序对指定 的一组语句进行重复汇编,其结束语句也是 ENDM。重复宏不一定出现在宏定义中,可以在 程序的任意位置,但一旦出现在宏定义中,则 必须先结束重复宏,然后再结束宏定义。重复宏有3种格

10、式:REPT(重复)、IRP(不定 重复)和IRPC(不定字符重复)。3.16 宏指令1重复宏REPT 重复宏REPT(Repeat)的格式为:REPT ;由指令和伪指令构成的重复内容ENDM 根据给定的表达式计算出重复的次数,从而重 复指定的程序段。当表达式的值不是整数时, 进行取整运算。 3.16 宏指令例:X=0 REPT 26DB A+XX=X+1ENDM汇编后可得到26个数据定义语句+DB A +DB B +DB C +DB Z3.16 宏指令2. 不定重复宏IRP 不定重复宏IRP(Indefinite Repeat)的 格式为: IRP , ;由指令和伪指令构成的重复内容 END

11、M 表示将尖括号内的各个参数依次赋给形 式参数,并重复指定的程序段。3.16 宏指令例3.46 设计重复宏完成5个数据单元的定义 。解:采用不定重复宏的程序为IRP X, DB XENDM 等效于: DB 96,175,254,77,1563.16 宏指令3. 不定字符重复宏IRPC 不定字符重复宏IRPC(Indefinite Repeat Character)的格式为:IRPC , ;由指令和伪指令构成的重复内容 ENDM 表示将字符串中的各个字符依次赋给形式参数 ,并重复执行指定的程序段。3.16 宏指令例3.47 不定字符重复宏IRPC示例。 解:设有不定字符重复宏:IRPC CC,

12、AAB ADD AX, CC&X ENDM 这等效于: ADD AX, AX ADD AX, AX ADD AX, BX3.16 宏指 令五、宏指令与子程序比较宏指令是采用一个标识符来代替一段程序,它在 汇编时要进行宏展开,对程序执行来说并没有增 加额外的指令,因此执行速度快,但由于通过宏 展开,使宏体在程序中多处出现,因此会占用较 多的存储空间。子程序也是一段功能独立的子程序,但它只出现 一次,每次需要时,通过CALL指令进行调用,会 额外引入子程序调用、子程序返回指令,因此会 影响程序的执行速度。3.16 宏指令优点缺点宏指令 1.执行速度快 2.设计灵活(可借助 参数改变功能) 3.修改方便占用内存多子程序 占用内存少1.执行速度慢 2.设计不太灵活宏指令和子程序优缺点

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号