第三章MCS_51系列单片机指令系统及汇编语言程序设计.ppt
文本预览下载声明
第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指令配合使用。
显示全部