第三章_单片机的指令系统_第1页
第三章_单片机的指令系统_第2页
第三章_单片机的指令系统_第3页
第三章_单片机的指令系统_第4页
第三章_单片机的指令系统_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第三章MCS 51指令系统 3 1指令格式 3 2寻址方式 3 4算术运算指令 3 5逻辑运算指令 3 3数据传送指令 3 6控制转移指令 3 1汇编指令格式一 两种基本类型 指令语句和伪指令语句 1 指令语句每一条指令语句在汇编时都产生一个机器代码 2 伪指令语句在汇编时没有机器代码与之对应 标号 操作码 操作数1 操作数2 注释 例3 1LOOP MOVA 40H 40H A 1 标号 是语句所在地址的标志符号 子程序调用 转移转入和调试 1 以字母开始 跟1 8个字母 数字或 2 惟一性 3 不能使用汇编保留字 2 操作码 2 5个字母 唯一不能缺 3 操作数 有单 双 三和无操作数三种 1 十六进制 二进制和十进制形式的操作数 2 工作寄存器和特殊功能寄存器的表示采用代号或地址表示 A 或Acc 也可用0E0H 3 1 3伪指令 向汇编程序发出的指示信息 告诉它如何完成汇编工作 汇编时不产生机器码 1 定位伪指令 ORGm机器指令在程序存储器中的16位地址 例3 3ORG0000HSTART SJMPMAIN ORG0030HMAIN MOVSP 30H地址必须由小到大排列 地址不能交叉 重叠 2 结束伪指令 END 唯一 3 定义字节伪指令 DBX1 X2 Xn在程序存储器的连续单元中定义字节数据 常数表 例3 4ORG7F00HTAB DB01110010B 16H 45 9 A 汇编后存贮单元内容为 7F00H 72H 7F01H 16H 7F02H 2DH 7F03H 39H 7F04H 41H 4 定义字伪指令 DWY1 Y2 Yn定义16位地址表 高位在前 低位在后 ORG0F00HTAB DW1234H 45H 161汇编后存贮单元内容为 0F00H 12H 0F01H 34H 0F02H 00H 0F03H 45H 7F04H 00H 7F05H 0A1H 5 定义空间伪指令 DS表达式例3 6ORG0F00HDS10HDB20H 40H汇编后 得 0F10H 20H 0F11H 40H DB DW DS只对程序存贮器起作用 6 等值伪指令 字符名EQU数据或汇编符数据或汇编符赋给字符名 先赋后用 例3 7ORG8500HAAEQUR1A10EQU10HDELAYEQU87E6HMOVR0 A10 R0 10H MOVA AA A R1 LCALLDELAY 调起始地址87E6H的END子程序 3 2指令寻址方式 共7种寻址方式 寻找操作数的方法叫寻址方式 1 立即寻址方式指令中直接给出操作数 前面加前缀 例如 MOVA 40HMOVDPTR 1234H 2 寄存器寻址方式操作数在寄存器中MOVA Rn Rn A n 0 7表示把寄存器Rn的内容传送给累加器A 寻址范围 1 4组通用工作寄存区共32个工作寄存器 2 部分特殊功能寄存器 例如A以及数据指针寄存器DPTR和C等 例 CLRAINCDPTRMOVR5 50H 3 直接寻址 以单元地址的形式给出操作数1 SFR 只能用直接寻址 以单元地址或寄存器符号的形式给出 MOV90H 40H等价于MOVP1 40H2 内部RAM的低128字节 有高128字节的单片机 只能用寄存器间址 MOVR0 90HMOV R0 40H 4 寄存器间接寻址寄存器中存放操作数的地址 加前缀标志 例如 MOVA Ri i 0或1 寻址范围 1 访问内部RAM低128个单元 其通用形式为 RiMOVA R0 p34 2 对片外数据存储器的64K字节的间接寻址 例如 MOVXA DPTR 3 提供外部数据存储器低8位地址例如 MOVXA R1 A 外部RAM P2R1 4 堆栈区堆栈操作指令PUSH 压栈 和POP 出栈 使用堆栈指针 SP 作间址寄存器 5 基址寄存器加变址寄存器间址寻址以DPTR或PC为基址 A做变址 以两者内容相加 形成16位程序存储器地址作为操作数地址 例如 MOVCA A DPTR A 54H DPTR 1256H指令执行的结果是把程序存储器12AAH单元的内容传送给A 特点 变址寻址方式只能对程序存储器进行寻址 变址寻址指令只有三条程序存储器读指令MOVCA A DPTRMOVCA A PC无条件转移指令JMP A DPTR 这三条指令都是单字节指令 变址寻址方式用于查表操作 6 位寻址方式 指令给出位地址例如 MOVC 40H寻址范围包括 1 片内RAM中的位寻址区字节地址20H 2FH 位地址是00H 7FH 例如MOVC 2BH 25H 3 2 可位寻址的特殊功能寄存器位可供位寻址的SFR有11个 有寻址位83位 7 相对寻址方式例 1005HSJMP80H 相对转移以PC作基地址 加上偏移量 所得结果作为转移地址送PC 目的地址 转移指令所在地址 转移指令字节数 rel偏移量在 128 127之间 是一带符号的8位二进制数补码数 则转移地址是0F87H 例如 JC80H若C为0 PC内容不变 不转移 若C为1 PC当前值为基地址 加80H作为目的地址 指令操作码在1000H单元 偏移量在1001H单元 执行该指令 PC指向1002H 即当前值 3 3MCS 51指令系统分类介绍111条指令 按功能分类 分5大类 1 数据传送类 28条 2 算术操作类 24条 3 逻辑运算类 25条 4 控制转移类 17条 5 位操作类 17条 指令中符号的意义 Rn当前寄存器区8个工作寄存器R0 R7 n 0 7 Ri当前寄存器区可作间接寻址的R0 R1 i 0 1 Direct直接地址 即8位内部RAM单元或SFR地址 data8位立即数 data1616位立即数 rel相对转移指令偏移量 为8位带符号补码数DPTR数据指针 可用作16位的数据地址寄存器 bit内部RAM或特殊功能寄存器中的直接寻址位 C 或Cy 进位标志位或位处理机中的累加器 addr1111位目的地址addr1616位目的地址 间接寻址寄存器前缀 如 Ri A DPTR X X中的内容 3 3 1数据传送类指令使用最频繁的一类指令 通用格式 MOV 属 复制 性质 而不是 搬家 不影响标志位Cy Ac和OV 但根据A影响标志P 说明 1 一条指令中不能同时出现两个工作寄存器 工作寄存器范围R0 R7 非法指令 MOVR1 R2MOVR2 R0 2 Ri间址寄存器只能使用R0 R1 非法指令 MOVA R2 3 SFR区只能直接寻址 不能寄存器间址 非法指令 MOVR0 80HMOVA R04 目的操作数不能采用立即寻址非法指令 MOV 30H 40H 1 以累加器为目的操作数的指令MOVA data data AMOVA direct direct AMOVA Rn Rn A n 0 7MOVA Ri Ri A i 0 1例如 MOVA 78H 78H A 立即寻址MOVA 70H 70H A 直接寻址MOVA R6 R6 A 寄存器寻址MOVA R0 R0 A 间接寻址 8 累加器A与外部数据存储器传送指令MOVXA DPTR DPTR A 读外部RAM IOMOVXA Ri P2Ri A 读外部RAM IOMOVX DPTR A A DPTR 写外部RAM IOMOVX Ri A A P2Ri 写外部RAM IO注意 RD或WR信号有效 采用DPTR间接寻址 高8位地址 DPH 由P2口输出 低8位地址 DPL 由P0口输出 采用Ri i 0 1 间接寻址 提供外部数据存储器低8位地址由P0口输出 例 片外数据存储器传送 2000H 2100H MOVDPTR 2000HMOVXA DPTRMOVDPTR 2100HMOVX DPTR A DPTR 2000H A X DPTR 2100H 2100H X 片外数据存储器不能直接寻址 非法指令 MOVXA 2000HMOVX2100H 2000H 例 将内部RAM80H单元内容送外部RAM70H单元 MOVR0 80HMOVA R0MOVDPTR 70HMOVX DPTR A 寄存器间接寻址 寄存器间接寻址 3 3 2算术操作类指令单字节的加 减 乘 除法指令 是针对8位二进制无符号数 执行的结果对Cy Ac OV三种标志位有影响 但增1和减1指令不影响上述标志 助记符为 ADD ADDC INC DA SUBB DEC MUL DIV等8种 1 加法指令共有4条加法运算指令 ADDA data A data AADDA direct A direct AADDA Rn A Rn A n 0 7ADDA Ri A Ri A i 0 1影响标志位AC CY OV P 和第3位有进位AC 1 和第7位有进位CY 1 和第7位与第6位进位异或确定OV OV 1表示两个正数相加 和为负数 或两个负数相加而和为正数的错误结果 例 设 A C3H R0 AAH 执行指令 ADDA R011000011B 10101010B01101101B A 6DH CY 1 OV 1 AC 0 P 1 2 带进位加法指令标志位Cy参加运算 因此是三个数相加 共4条 ADDCA data A data C AADDCA direct A direct C AADDCA Rn A Rn C A n 0 7ADDCA Ri A Ri C A i 0 1例 A 85H 20H FFH Cy 1 执行指令 ADDCA 20H结果为 A 85H Cy 1 Ac 1 OV 0 P 1 3 增1指令5条 INCAINCRn n 0 7INCdirectINC Ri i 0 1INCDPTR不影响PSW中的任何标志 5 带借位的减法指令SUBBA data A data Cy ASUBBA direct A direct Cy ASUBBA Rn A Rn Cy A n 0 7SUBBA Ri A Ri Cy A i 0 1位7借位置 1 Cy 位3借位置 1 Ac 位6位7借位情况则置 1 OV 例A C9H R2 54H Cy 1 执行指令 SUBBA R2结果 A 74H Cy 0 Ac 0 OV 16 减1指令4条指令 DECA A 1 ADECRn Rn 1 Rn n 0 7DECdirect direct 1 directDEC Ri Ri 1 Ri i 0 1减1指令不影响标志位 3 3 3逻辑运算指令逻辑运算类指令包括 与 或 异或 清除 求反 移位等操作 助记符有ANL ORL XRL RL RLC RR RRC CPL CLR等九种 只按位进行逻辑运算 结果不影响PSW中标志位 RLC RRC除外 1 简单逻辑操作指令 1 CLRAA清 0 不影响Cy Ac OV等标志 2 CPLAA内容按位逻辑取反 不影响标志 2 左移指令RLA3 带进位左移指令RLCA 4 右移指令RRA5 带进位右移指令RRCA例 50H单元中有一个带符号数X 求补 MOVA 50HCPLAINCAMOV50H A 6 累加器半字节交换指令SWAPA将累加器A的高半字节 Acc 7 Acc 4 和低半字节 Acc 3 Acc 0 互换 例A 0C5H 执行指令 SWAPA结果 A 5CH 3 3 4控制转移类指令 程序顺序执行由PC自动加1来实现 但执行转移类 调用子程序 中断程序使PC转移 8051控制转移指令分为 无条件和条件转移指令 循环转移指令 子程序调用和返回指令及空操作指令等 但不包括布尔变量控制程序转移指令 助记符 AJMP LJMP SJMP JMP JZ JNZ CJNE DJNZ ACALL LCALL RET RETI NOP等13种 指令机器码SJMPrel80relAJMPaddr11a10a9a800001a7 a0LJMPaddrl602addr15 8addr7 0JMP A DPTR73功能是程序无条件地转移到指定的目标地址去执行 不同的指令形成的目标地址不同 1 无条件转移指令 短转移指令 SJMPrel 当前PC rel PCrel为8位带符号数 10000000 相对地址 指令可转向指令前128B或指令后127B rel 目标地址 当前PC地址 的低八位 rel 例1 地址源程序1000HSJMP02 1004H 转移目的指令例2 LOOP MOVA R6 SJMPLOOP 汇编时 由汇编程序自动计算和填入偏移量 CPU根据偏移量计算转移的目的地址例3 在2100H地址上有SJMP指令 2100HSJMP7FH当前PC地址为2102H 偏移量rel 7FH 2102H 007FH2181H 例4 2100HSJMP80H源地址2100H 当前PC为2102H 偏移量rel 80H 执行后 程序转移至2082H去执行 2102H FF80H2082H例5 HERE SJMPHERE可写为 SJMP 当rel为FEH 02 时 SJMP实现原地转圈 间接转移指令JMP A DPTR当DPTR的值固定 给A赋不同值 即可实现程序的多分支转移 如实现键盘译码散转功能 例1 设A 5 DPTR 4567H JMP A DPTR执行结果为 PC 05H 4567H 456CH程序转向456CH单元执行 A为零或非零转移JZrel 累加器为 0 则转移JNZrel 累加器非 0 则转移当条

温馨提示

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

最新文档

评论

0/150

提交评论