lecture[4].ppt_第1页
lecture[4].ppt_第2页
lecture[4].ppt_第3页
lecture[4].ppt_第4页
lecture[4].ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四讲指令系统 主要内容 寻址方式指令系统 寻址方式 指令地址寻址 操作数地址寻址 指令地址寻址 相对寻址 将一条指令的8位立即数与下一条指令的起始地址相加 结果赋给程序计数器 PC 然后转向相加结果指向的地址立即数是带符号位的补码 128to 127 相对转移值是从下一条指令的起始地址开始 范围在 128与 127之间执行 BR addr16 指令或条件转移指令 立即寻址 将指令中的立即数赋给程序计数器 PC 然后转向该地址如 CALL addr16 BR addr16 或 CALLF addr11 指令CALL addr16和BR addr16指令的转移地址范围是所有内存空间 CALLF addr11指令的转移地址范围在0800H与0FFFH之间 CALL addr16 BR addr16指令 指令地址寻址 CALLF addr11指令 指令地址寻址 表间接寻址 通过指令码低5位的立即数 从第1位到第5位 访问特定存储单元的表的内容 转移目的地址 并将表的内容赋给程序计数器 PC 然后转向该地址在执行CALLT addr5 指令时 进行表间接寻址 执行该指令时 根据存储在内存表中40H至7FH之间的地址 能够跳转到整个内存空间的任意位置 指令地址寻址 寄存器寻址 将一条指令的寄存器对 AX 的内容赋值给程序计数器 PC 然后转向该地址 BRAX 指令 指令地址寻址 指令执行期间寄存器寻址和存储器寻址所进行的操作 隐含寻址 规定某些寄存器地址 是作为通用寄存器中的累加器 A和AX 使用 操作数地址寻址 寄存器寻址 将通用寄存器作为操作数进行访问 并由寄存器组选择标志 RBS0和RBS1 和指令中的寄存器标识码 Rn和RPn 确定要访问的通用寄存器 如果使用8位寄存器 则指令码中有3位用来表示一个8位寄存器 r 和 rp 可用绝对名称 R0到R7以及RP0到RP3 和功能名称 X A C B E D L H AX BC DE以及HL 来描述 操作数格式 MOVA C 选择C寄存器作为r 操作数地址寻址 直接寻址 根据指令中的立即数直接寻址 地址为16位 操作数格式 MOVA FE00H 将 addr16设置为FE00H 操作数地址寻址 短直接寻址 指令中的8位立即数寻址短寻址的范围是固定的 FE20H到FF1FH 共256字节该区域为内部高速RAM和特殊功能寄存器 SFR 如果8位立即数是在20H和FFH之间 则高位地址为FEH如果8位立即数是在00H与1FH之间 则高位地址为FFH 操作数格式 MOVFE30H 50H saddr的值为FE30H 立即数为50H 操作数地址寻址 特殊功能寄存器 SFR 寻址 指令中的8位立即数对内存中的特殊功能寄存器 SFR 区域进行寻址 寻址区间为FF00H到FFCFH以及FFE0H到FFFFH区间共240字节 操作数格式 MOVPM0 A 选择PM0作为sfr 操作数地址寻址 寄存器间接寻址 对操作数寄存器对的内容进行寻址 由寄存器组选择标志 RBS0和RBS1 和指令码中的寄存器对说明 定义需要访问的寄存器对 操作数格式 MOVA DE 选择DE寄存器对作为操作数 操作数地址寻址 基址寻址 将8位立即数加到HL寄存器对中 HL寄存器对作为基地址寄存器 根据相加结果寻址 需要访问的HL寄存器对属于由寄存器组选择标志 RBS0和RBS1 确定的寄存器组 通过将偏移量扩展为16位正数 来完成加法操作 进位忽略 该寻址方式可对整个内存空间进行 操作数格式 MOVA HL 10H byte的值为10H 操作数地址寻址 基址变址寻址 将B或C寄存器的内容加到HL寄存器中 HL寄存器作为基地址寄存器 并根据相加结果寻址 需要访问的HL B和C寄存器属于由寄存器组选择标志 RBS0和RBS1 确定的寄存器 通过将B或C寄存器扩展为一个16位的正数来完成加法运算 进位忽略 该寻址方式可对整个内存空间进行 操作数格式 MOVA HL B 操作数地址寻址 堆栈寻址 根据堆栈指针 SP 的内容对堆栈区域进行间接寻址 当执行PUSH POP 子程序调用和RETURN指令时 或者根据中断请求产生对寄存器进行设置或复位时 将自动采用这种寻址方式 该方式仅对内部高速RAM区域进行寻址 操作数地址寻址 指令系统按照功能分数据传送类指令算术运算类指令逻辑运算类指令循环操作类指令无条件转移类指令条件转移类指令位操作类指令调用及返回类指令CPU控制类指令 指令系统 大写字母和符号 是关键字 必须按其原样书写 立即数标识 绝对地址标识 相对地址标识 间接地址标识立即数用来描述一个数值型数据或标志 当使用标志时 注意必须加上符号 和 操作数寄存器标识符r和rp 功能名称 X A C etc 或绝对名称 R0 R1 R2等 都可用于标识 操作数标识符和标识方法 操作数标识符和标识方法 数据传送类指令MOV MOVW XCH XCHW PUSH POP 指令系统 数据传送指令MOV 8位数据操作指令MOVW 16位数据操作指令指令操作不影响标志位举例 MOVA 4DHMOVWAX HL 数据交换指令XCH 8位数据操作指令XCHW 16位数据操作指令指令操作不影响标志位 不允许有立即数举例 XCHA FEBCHXCHWAX BC 堆栈操作指令PUSH16位的寄存器 PSWPOP16位寄存器 PSW举例 PUSHAXPOPHL 算术运算指令ADD ADDC ADDW SUB SUBC SUBW CMP CMPW MULU DIVUW INC INCW DEC DECW ADJBA ADJBS 指令系统 加法指令ADD 8位加ADDC 8位带进位加ADDW 16位加举例 ADDCA HL B ADDWAX ABC0H 减法法指令SUB 8位减SUBC 8位带进位减SUBW 16位减举例 SUBD ASUBCA HL SUBWAX ABCDH 乘法指令 无符号乘 MULU 将A寄存器的内容与源操作数进行无符号乘法运算 结果存于AX寄存器中举例 MULUX 只能是X 除法指令 无符号处 DIVUW AX C AX 商 C 余数 除数为0时 则将X寄存器的内容存于C寄存器中 并将AX的内容设置为0FFFFH举例 DIVUWC 比较指令CMP 8位操作 修改Z AC和CY标志位CMPW 16位操作 修改Z和CY标志举例 CMPFE38H 38HCMPWAX ABCDH 指令系统 增1 减1指令INC 8位加1DEC 8位减1INCW 16位加1DECW 16位减1举例 INCBDECFE92HINCWHLDECWDE BCD码调整加指令 ADJBA 将A寄存器 CY标志以及AC标志的内容按十进制进行调整 仅在进行BCD数据相加 且相加结果在A寄存器中时 该指令有效 影响Z标志 指令系统 BCD码调整减指令 ADJBS 将A寄存器 CY标志以及AC标志的内容按十进制进行调整 仅在进行BCD数据相减 且相减结果存在A寄存器中时 有意义 如果调整结果的A寄存器内容为0 则将Z标志设置为1 否则将Z标志清零 指令系统 逻辑运算类指令AND OR XOR 逻辑运算指令AND 8位逻辑与OR 8位逻辑或XOR 8位逻辑异或举例 ANDFEBAH 11011100BHORA FE98HXORA L 循环操作类指令ROR ROL RORC ROLC ROR4和ROL4 指令系统 ROR ROL RORC ROLC 仅限于A 且移动1位 ROL4 ROR4 ROR4 HL 仅限于A和 HL 之间 举例 RORA 1ROLA 1RORCA 1ROLCA 1ROL4 HL ROR4 HL 无条件转移指令BR 无条件转移指令 将目标地址操作数传送到PC中 并转向该地址BR addr16BR jdisp8BRAX 条件转移指令 BC BNC BZ BNZ BT BF BTCLR DBNZ 指令系统 BC 当CY 1时 程序转移到操作数所规定的地址处BNC 当CY 0时 程序转移到操作数所规定的地址处 BZ 当Z 1时 程序转移到操作数所规定的地址处BNZ 当Z 0时 程序转移到操作数所规定的地址处 BT 如果操作数 位 的内容为1 程序转移到操作数所规定的地址处BF 如果操作数 位 的内容为零 程序转移到操作数所规定的地址处BTCLR 如果操作数 位 的内容为1 则将它们清零 程序转移到操作数所规定的地址处 如果第一操作数 位 是PSW bit 则将相应标志位清零 DBNZ 第一操作数所规定的目标操作数减1 相减结果存于目标操作数中 如果相减结果不等于0 程序转移到操作数所规定的地址处 如果相减结果等于0 直接执行后续指令举例 BC 300HBNC 300HDECBBZ 0A39HCMPA 55HBNZ 0A39HBTFE47H 3 55CH 指令系统 位操作指令位操作指令包括 MOV1 AND1 OR1 XOR1 SET1 CLR1 NOT1 指令系统 MOV1 将源操作数的位数据传送给目标操作数AND1 CY标志和源操作数进行位逻辑与运算 结果存于CY标志中OR1 CY标志和源操作数进行位逻辑或运算 结果存于CY标志中XOR1 CY标志和源操作数进行位逻辑异或运算 结果存于CY标志中SET1 将目标操作数设置为1CLR1 将目标操作数清零NOT1 CY标志的内容取反 示例MOV1P3 4 CY 将CY的内容传送到端口3的第4位AND1CY FE7FH 3 FE7FH的第3位与CY进行逻辑与OR1CY P2 5 端口2的第5位与CY进行逻辑或XOR1CY A 7 A寄存器的第7位与CY进行异或SET1FE55H 1 将FE55H的第1位设置为1CLR1P3 7 将端口3的第7位清零NOT1CY CY标志的内容取反 指令系统 调用和返回指令包括 CALL CALLF CALLT BRK RET RETI TETB 指令系统 CALL 子程序调用指令 采用16位绝对寻址或寄存器间接寻址CALLF 程序调用指令 调用的地址范围为0800H至0FFFHCALLT 查找调用表 转到调用表字数据所指示的地址 地址的高8位固定为00000000B 随后5位由addr5规定 BRK 软件中断指令 将PSW和下一条指令地址 PC 1 存于堆栈中 然后将IE标志清零 屏蔽向量中断 将存储的数据转向由向量地址 003EH 处的字数据所指的地址 RETB指令用于从该指令产生的软件向量中断处返回 RET 返回指令 是从CALL CALLF和CALLT指令所执行的子程序调用处返回RETI 向量中断返回指令 将存于堆栈的字数据返回到PC和PSW中 程序从中断服务子程序处返回 不能用于BRK指令的返回 执行RETI指令可将N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论