当前位置:文档之家› 内容一 51单片机汇编指令

内容一 51单片机汇编指令


;TR01 ;(00H)0 ;将57H位地址的内容传送到位累加器C ;将5FH位状态与进位位C相与,结果在
二、51单片机寻址方式
寻址方式 立即寻址 使用变量 #data 寻址空间 程序存储器(指令的常数部分) 片内RAM低128字节,特殊功能寄存器 SFR
直接寻址 寄存器寻址
寄存器间接寻址 变址寻址 相对寻址 位寻址
SP的内容加1,然后将直接地址所指出的内容送入SP所指出
的内部RAM单元;出栈指令的功能是:将SP所指出的内部 RAM单元的内容送入由直接地址所指出的字节单元,接着将 SP的内容减1。
三、51单片机指令
• 堆栈操作指令
例如:进入中断服务程序时,把程序状态寄存器PSW、累加 器A、数据指针DPTR进栈保护。设当前SP为60H。则程序段 MOV SP,#60H PUSH PSW PUSH ACC PUSH DPL PUSH DPH 执行完指令后, SP=64H,(61H)=PSW,(62H)=ACC,(63H)=DPL,(64H)=DPH
三、51单片机指令
• 字节交换指令
①整字节交换指令 XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,@Ri ;(A)((Ri)) ②半字节交换指令 XCHD A,@Ri ③累加器高低半字节交换指令 SWAP A
Keil软件调试程序1
Keil软件调试程序2
三、51单片机指令
指令符号意义:
符 号 Rn Ri #data addr16 addr11 direct 含 义 表示当前选定寄存器组的工作寄存器R0~R7 表示作为间接寻址的地址指针R0~R1 表示8位立即数,即00H~FFH 表示16位地址,用于64K范围内寻址 表示11位地址,用于2K范围内寻址 8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址
作为源操作数,不能当作目的操作数。
例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H
二、51单片机寻址方式
直接寻址
在指令中含有操作数的直接地址,该地址指出了参与操作的 数据所在的字节地址或位地址。直接寻址方式可以访问2种存 储空间:内部数据存储器的低128个字节单元(00H~7FH)和 80H~FFH中的(SFR)特殊功能寄存器。
三、51单片机指令
②以Rn为目的操作数的内部数据传送指令 MOV Rn,A ;Rn(A) MOV Rn,direct ;Rn(direct) MOV Rn,#data ;Rndata ③数据传送到内部RAM单元或特殊功能寄存器SFR的指令 MOV direct,A ;direct(A) MOV direct,Rn ;direct(Rn) MOV direct1,direct2 ;direct1(direct2) MOV direct,@Ri ;direct((Ri)) MOV direct,#data ;direct#data MOV @Ri,A ;(Ri ) (A) MOV @Ri,direct ;(Ri)(direct) MOV @Ri,#data ;(Ri)data MOV DPTR,#data16 ;DPTRdata16
三、51单片机指令
direct @Ri
A
Rn #data
三、51单片机指令
• 片外数据存储器数据传送指令 MOVX
格式: MOVX [目的操作数],[源操作数] 功能:目的操作数(源操作数中的数据)
①累加器A与外部数据存储器之间的传送指令
MOVX MOVX MOVX MOVX A,@DPTR A,@Ri @DPTR,A @Ri,A ;A(DPTR) ;A((Ri)) ;(DPTR)A ;(Ri) A
#data16 表示16位立即数,即0000H~FFFFH
Rel
Bit (X) ←
带符号的8位偏移量(-128~+127)
位寻址区的直接寻址位 X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容 将 ← 后面的内容传送到前面去
三、51单片机指令
1)数据传送类指令(29条) 数据传送类指令一般的操作是把源操作数传送到指令所指定 的目标地址。指令执行后,源操作数保持不变,目的操作数为
三、51单片机指令
• 加法指令
③增量指令 INC A ;A(A)+1 INC Rn ;Rn (Rn)+1 INC direct ;direct (direct)+1 INC @Ri ;(Ri)((Ri))+1 INC DPTR ;DPTR (DPTR)+1 ④十进制调整指令 MOV A,#36H ADD A,#45H DA A
使用R0,Rl或DPTR作为地址指针。寄存器间接寻址用符号
“@”表示。 例如: MOV A, @R0 ;A ((R0)) MOV A ,@R1 ;A ((R1))
二、51单片机寻址方式
例如: MOV DPTR,#3456H MOVX A,@DPTR ;DPTR3456H ;A ((DPTR))
0000H
DELAY: D1: D2:
;子程序返回
二、51单片机寻址方式
寻址方式:通常是指某一个CPU指令系统中规定的寻 找操作数所在地址的方式,或者说通过什么的方式找 到操作数。 立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 位寻址
二、51单片机寻址方式
立即数寻址
立即寻址方式是操作数包括在指令字节中,指令操作码后面 字节的内容就是操作数本身,其数值由程序员在编制程序时 指定,以指令字节的形式存放在程序存储器中。该操作数直 接参与操作,所以又叫立即数,用“#”号表示。立即数只能
内容一 51单片机汇编指令
通过本章学习,同学们掌握51单 片机汇编指令的用法,能够编写 简单的汇编程序,在此基础上深 刻理解51单片机的内部结构,并 能根据实际需要设计并实现简单 的51单片机控制系统。
2
一、51单片机指令格式
51汇编指令组成: 标号:操作码 目的操作数,源操作数 ;注释
ORG
START: SETB LCALL CLR LCALL LJMP MOV MOV MOV DJNZ DJNZ DJNZ RET END P1.0 DELAY P1.0 DELAY START R5, #20 R6, #20 R7, #250 R7, $ R6, D2 R5, D1 ;P1.0口置高电平 ;调用延时子程序 ;P1.0口置低电平 ;程序跳转到标号为START的地方继续执行 ;延时子程序D1: MOV R6,#20
三、51单片机指令
• 减法指令
①带借位减法指令 SUBB A,Rn ;A(A)-(Rn)-(Cy) SUBB A,direct ;A(A)-(direct)-(Cy) SUBB A,@Ri ;A(A)-(Ri)-(Cy) SUBB A,#data ;A(A)-data-(Cy) ②减1指令 DEC A ;A(A)-1 DEC Rn ;Rn(Rn)-1 DEC direct ;direct(direct)-1 DEC @Ri ;(Ri)((Ri))-1
原操作数所替代。
数据传送类指令用到的助记符有:MOV,MOVX,MOVC, XCH,XCHD,PUSH,POP,SWAP。
三、51单片机指令
• 内部数据传送类指令 MOV
格式: MOV [目的操作数],[源操作数] 功能:目的操作数(源操作数中的数据)
①以累加器为目的操作数内部数据传送指令
MOV MOV MOV MOV A,Rn; A,direct; A,@Ri; A,#data; A(Rn) A(direct) A((Ri)) Adata
三、51单片机指令
• 乘法指令
MUL
DIV
AB
AB
• 除法指令
加、减、乘、除指令验证
• 绘制如下电路图
加、减、乘、除指令验证
• 编写程序,并生成hex文件
加法程序: ORG 0000H MOV A,P1 MOV R0,P2 ADD A,R0 MOV P3,A END
减法程序: ORG 0000H CLR C MOV A,P1 MOV R0,P2 SUBB A,R0 MOV P3,A END
算术指令用到的助记符共有8种:ADD、ADDC、INC、
SUBB、DEC、DA 、MUL、DIV。 算术运算指令执行结果将影响进位标志(Cy),辅助进位标 志(Ac)、溢出标志位(Ov)。
三、51单片机指令
• 加法指令
①普通加法指令 ADD A,Rn ;A(A)+(Rn) ADD A,direct ;A(A)+(direct) ADD A,@Ri ;A(A)+((Ri)) ADD A,#data ;A(A)+ data ②带进位的加法指令 ADDC A,Rn ;A(A)+(Rn)+(Cy) ADDC A,direct ;A(A)+(direct)+(Cy) ADDC A,@Ri ;A(A)+((Ri))+(Cy) ADDC A,#data ;A(A)+ data+(Cy)
三、51单片机指令
• 程序存储器内容送累加器 MOVC
格式: MOVC [目的操作数],[源操作数] 功能:目的操作数(源操作数中的数据)
①程序存储器内容送累加器
MOVC MOVC A,@A+PC A,@A+DPTR
三、51单片机指令
• 堆栈操作指令(PUSH\POP)
格式: PUSH direct POP direct 单片机的内部RAM中,可以设定一个先进后出、后进先出的 区域,称其为堆栈。在特殊功能寄存器中有一个堆栈指针SP ,它指出栈顶的位置。进栈指令的功能是:首先将堆栈指针
用寄存器间接寻址方式可访问的存储空间 1、内部RAM低128单元 2、外部RAM 64K
相关主题