文档详情

第三章MCS_51系列单片机指令系统及汇编语言程序设计.ppt

发布:2017-04-24约1.17万字共52页下载文档
文本预览下载声明
第3章 MCS-51系列单片机指令系统及汇编语言程序设计;3.1 MCS-51单片机的寻址方式;1. 立即寻址 ;2. 直接寻址;3. 寄存器寻址;4. 寄存器间接寻址;5. 变址寻址;6. 相对寻址;7. 位寻址;3.2 分类指令;1.数据传送类指令(共29条) ;以直接地址为目的操作数的指令(5条) MOV ?dir,dir MOV ?dir,#data MOV ?dir,A MOV ?dir,Rn MOV ?dir,@Ri 例:R0=50H,(50H)=10H,指令MOV 35H,@R0执行后,(35H)=10H。 以间接地址为目的操作数的指令(3条) MOV ?@Ri,dir MOV ?@Ri,#data MOV ?@Ri,A 查表指令(2条) MOVC ?A,@A+DPTR MOVC ?A,@A+PC 例:A=20H,DPTR=2000H,指令MOVC ?A,@A+DPTR执行后,程序存储器2020H单元中的内容送入A。 ;累加器A与片外数据存储器RAM传送指令(4条) MOVX ?@DPTR,A MOVX ?A,@DPTR? MOVX ?A,,@Ri????? MOVX ?@Ri,A 例:DPTR=2000H,外部RAM中(2000H)=18H,指令MOVX ?A,@DPTR执行后,A=18H。 例:P2=10H,R1=50H,A=64H,指令MOVX ?@R1,A执行后,外部RAM中(1050H)=64H。 堆栈操作类指令(2条) PUSH ?dir? POP ?dir 例:SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP=08H。;交换指令(5条) XCH ?A,Rn? XCH ?A,@Ri XCH ? A,dir XCHD ?A,@Ri SWAP ?A 例:A=80H,R0=32H,(32H)=FFH,指令XCHD ?A,@R0执行后,A=8FH,(32H)=F0H。 16位数据传送指令(1条) MOV ?DPTR,#data16? ;2.算术操作类指令(共24条) ;乘法指令(1条) MUL ?A, B 例:A=50H,B=A0H,指令MUL ?A, B执行后,A=00H,B=32H 除法指令(1条) ? DIV ?A, B 例:A=28H,B=12H,指令DIV ?A, B执行后,A=02H,B=04H 加1指令(5条) INC ?A?????????? INC ?dir??????? INC ?@Ri??????? INC ?Rn????????? INC ?DPTR?????;减1指令(4条) DEC ?A????????? DEC ?dir?????? DEC ?@Ri?????? DEC ?Rn????? ? 十进制调整指令(1条) DA ?A ;把A中按二进制相加后的结果调整成按BCD数相加的结果 ;3.逻辑操作类指令(共24条) ;“异或”操作指令(6条) XRL ?A,dir???? ???? XRL ?A,#data??? XRL ?A,Rn????? XRL ?A,@Ri???? XRL ?dir,A???? XRL ?dir,#data?? 例:R0=23H,(23H)=32H,A=53H,指令XRL ?A,@R0执行后,A=61H 求反指令(1条) CPL ?A? ?;累加器A中的内容按位取反 清零指令(1条) CLR ?A????;0→A,累加器A中的内容清零 循环移位指令(4条) ?RL ?A ???? ;累加器A中的内容左移一位 ?RR ?A ????;累加器A中的内容右移一位 ?RLC ?A ??;累加器A中的内容连同进位位C左移一位 ?RRC ?A ?;累加器A中的内容连同进位位C右移一位 例:A=16H,指令RR ?A执行后,A=0BH。 ;4.控制转移类指令 (共17条);表3.4 程序存储器空间中的32个基本2K地址范围;长调用指令 LCALL ?addr16 ? 长调用指令为64K程序存储器空间中的全范围子程序调用指令,子程序的入口地址可在64K地址空间中的任一处。 子程序返回指令 ? RET ? 从被调用子程序返回,与LCALL与ACALL指令配合使用。
显示全部
相似文档