- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微原-第3章宏指令
本教案内容 第3章 8086CPU指令系统 汇编语言指令 8086指令分类 数据与转移地址的寻址方式 数据传送类指令 算术运算类指令 逻辑运算类指令 移位类指令 标志位操作指令 3.15 其它指令 处理器控制指令(5条) 1.空操作指令NOP 格式: NOP 说明:空操作指令NOP(No operation)表示什么也不做,但要占用机器的三个时钟周期,利用NOP指令可以构成适当的延时操作。 3.15 其它指令 2. 暂停指令HLT 格式: HLT 说明:暂停指令HLT(Halt until interrupt or reset)可以使CPU进入暂停状态,退出暂停状态的条件有: RESET信号有效,即CPU进行复位操作; NMI (非屏蔽中断请求)信号有效,即系统收到了非屏蔽的中断请求,这时系统必须进行适当的处理; INTR (可屏蔽中断请求)信号有效,而且IF=1,这时要求系统响应该指定请求。 适当的使用HLT指令,并与硬件电路配合,可以使CPU与外部设备协调工作。 3.15 其它指令 3.等待指令WAIT 格式: WAIT 说明:等待指令WAIT(Wait for pin active)可以使CPU处于等待状态,这时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)可以完成多处理器之间的指令和数据交换,在8086/8088CPU与其它处理器配合使用时,利用该指令可以将任务分配给其它的处理器,CODE是一个事先规定的6位指令码,表示完成相应的操作,DATA表示要送给其它处理器的数据。 3.16 宏指令 宏指令是用户自己定义的指令,它是由指令和伪指令构成的一个程序段。 用户要采用宏指令时,必须先定义后调用。宏指令是指用一个标识符(称为宏指令名)来表示指定的一段程序,在调用该宏指令时可以在程序汇编时展开成相应的程序段(这一过程称为宏展开)。因此宏指令在汇编时并没有相对应的指令代码. 3.16 宏指令 宏指令名为一个标识符,即定义的宏指令的名称; 形式参数为宏体中使用的参数,它允许宏指令中具有待定的参数,在宏调用时必须用实际的参数代替它,因此每次宏指令调用时可以通过改变实际参数而改变宏指令的功能,使宏指令的设计更加灵活。 宏指令可有多个形式参数,它们之间以逗号间隔,但总长度不得超过132。调用时,实际参数的个数和类型必须与形式参数一致。 汇编程序允许两者的个数可以不相等: 当实际参数多于形式参数时,多余的实际参数将被忽略; 当实际参数少于形式参数时,则多余的形式参数被置为空; 宏指令也可以不带任何形式参数。 3.16 宏指令 二、宏调用与宏展开 宏调用的格式: 宏指令名 实际参数 注意:实际参数应该与宏指令定义时的形式参数一一对应。 宏展开: 在汇编过程中,当汇编到宏调用语句时,将用宏体中的 一段程序来代替这一条宏指令,并且用实际参数取代形 式参数。在汇编过程产生的LST(列表)文件中,可看到 宏展开语句的前面有一个“+”号或其它符号,以表示与其 它指令的区别。 3.16 宏指令 例3.41 设计对通用寄存器左移4位的宏指令。 解:设形式参数REG表示任一个调用寄存器,则宏指令LSHIFT4定义为: LSHIFT4 MACRO REG MOV CL,4 SHL REG,CL ENDM 这样,在程序中,如果要对BX的内容左移4位,则可以直接采用: LSHIFT4 BX 如果要对DL的内容左移4位,则可以直接采用: LSHIFT4 DL 3.16 宏指令 例3.43 设计对通用寄存器的左移、右移N位的宏指令。 解:宏指令SHIFTN定义为: SHIFTN MACRO N, REG, CC MOV CL, N SCC REG, CL ENDM 这里REG表示任一个调用寄存器,N表示移位次数,CC表示移位方式: CC取HR时,表示采用SHR移位; CC取HL时,表示采用SHL移位; C
文档评论(0)