




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51汇编指令大全2009年07月18日 星期六 8:26 P.M.Rn: 表示当前寄存器区的8个工作寄存器R0R7 Ri: 表示当前寄存器区的R0或R1,可作地址指针即间址寄存器(i=0或1) : 为间接寄存器或基址寄存器的前缀. Direct: 表示8位内部数据存储单元的地址.它可以是内部RAM的单元地址0127.特殊功能 寄存器SFR的地址(128255)或名称, A: 累加器ACC. B: .特殊功能寄存器B,用于MUL和DIV指令中. C: 进位位Cy. #data: 表示包含在指令中的单字节(8位)立即数.如果用16位进制表示,后缀字母为”H”,数据范围000FFH,不得一字母开头;如果用16进制表示无须任何后缀,但必须在0255之间. #data16: 表示包含在指令中的双字节(16位)立即数. Adda16: 表示16位的目的地址.用于LCALL和LJMP指令中,目的地址范围是从0000HFFFFH的整个64KB存储地址空间. Adda11: 表示11位的目的地址.用于ACALL和AJMP的指令中,目的地址必须和下一条指令第一个字节同处一页. Rel: 表示8位带符号的相对偏移量.用语SJMP和所有的条件转移指令中.偏移量相对于下一条指令的第一个字节计算,在-128+127范围内取值. DPTR: 为数据指针,可用作16位的地址寄存器. /: 加在位操作的前面,表示对该位进行非运算. bit: 表示内部可寻址位或特殊功能寄存器中的直接寻址位. “(x): 寄存器或地址单元中的内容. (x): 有x见解寻址的单元中的内容. -: 表示将箭头右边的内容传送至箭头的左边. $: 当前指令的地址.单片机指令系统 (一) 内部数据传送指令 (1) 以累加器A为目的的传送指令: MOV A, #data ;(A)-data MOV A, direct ;(A)-(direct) MOV A, Rn ;(A)-(Rn) MOV A, Ri ;(A)- (Ri) (2) 以通用寄存器Rn为目的的传送指令: MOV Rn, A ;(Rn)-(A) MOV Rn, direct ; (Rn)(direct)- MOV Rn, #data: ; (Rn)-(data) (3) 以直接地址为目的的传送指令: MOV direct, A ;(direct)-(A) MOV direct, Rn ; (direct)-(Rn) MOV direct, direct2 ; (direct)-(direct2) MOV direct, Ri ; (direct)-(Rn) MOV direct, #data ; (direct)-data (4) 以寄存器间接地址为目的的传送指令: MOV Ri, A ;(Ri)-(A) MOV Ri, direct ;(Ri)-(direct) MOV Ri, #data ;(Ri)-data (二) 数据指针赋值指令(16位数据传送指令) MOV DPTR, #data16; (三) 片外数据传送指令 MOVX A, Ri ;(A)-(Ri)片外 MOVX A, DPTR ;(A)-(DPTR)片外 MOVX Ri, A ;(Ri)片外-(A) MOVX DPTR, A ;(DPTR)片外-(A) (四) ROM数据访问指令(查表指令) MOVC A, A+DPTR ;(A)-(A)+(DPTR)rom MOVC A, A+PC ;(PC)-(PC)+1,(A)-(A)+(PC)rom (五) 堆栈操作指令 PUSH direct ;(SP)-(SP)+1,(SP)-(direct) 堆栈指针先加1,将数据压入栈顶 POP direct ;(direct)-(SP),(SP)-(SP)-1 将数据从栈顶弹出存入direct,SP再减1 (六) 数据交换指令 (1)整字节(8位)交换指令: XCH A, Rn ;A和Rn中的数互换 XCH A, direct ;A和direct单元中的数互换 XCH A, Ri ;A和Ri间址单元中的数互换 (2)半字节交换指令: XCHD A, Ri ;A的低4位Ri间接单元的低4位互换,高4位不动 (3)累加器高低半字节交换指令: SWAP A, ;A的高4位(D7D4)和低4位(D3D0)互换 (七) 加法指令 (1)不带Cy加法指令: ADD A, Rn ;(A)-(A)+(Rn) ADD A, direct ; (A)-(A)+(direct) ADD A, Ri ; (A)-(A)+(Ri) ADD A, #data ; (A)-(A)+data (2)带进位加法指令: ADDC A, Rn ;(A)-(A) +Cy+(Rn) ADDC A, direct ; (A)-(A) +Cy+(direct) ADDC A, Ri ; (A)-(A) +Cy+(Ri) ADDC A, #data ; (A)-(A) +Cy+data (3)加1指令: INC A, ;(A)-(A)+1 INC Rn ;(Rn)-(Rn)+1 INC Ri ;(Ri)-(Ri)+1 INC direct ;(direct)-(direct)+1 INC DPTR ;(FPTR)-(DPTR)+1 (八) 减法指令 (1)带进位减法指令: SUBB A, Rn ;(A)-(A) -Cy-(Rn) SUBB A, direct ; (A)-(A) -Cy-(direct) SUBB A, Ri ; (A)-(A) -Cy-(Ri) SUBB A, #data ; (A)-(A) -Cy-data (2)减1指令: DEC A ;(A)-(A)-1 DEC direct ;(direct)-(durect)-1 DEC Rn ;(Rn)-(Rn)-1 DEC Ri ;(Ri)-(Ri)-1 (九) 乘除指令 (1)乘法指令 MUL AB ;(B)(A)-(A)*(B) 指令功能是把累加器A和特殊功能寄存器B中两个8位无符号整数相乘,并把积的高8位字节存入B寄存器,低8位字节存入累加器A. (2)除法指令 DIV AB ;A/B,商存入A,余数存入B 指令的功能是把累加器A中的8位无符号整数除以寄存器B中的8位无符号整数商的整数部分存入累加器A中,余数保留在B中. (十) 十进制调整指令 DA A (十一) 逻辑运算指令 (1) 逻辑与运算指令: ANL A, Rn ;(A)-(A)(Rn) ANL A, direct ; (A)-(A)(direct) ANL A, Ri ; (A)-(A)(Ri) ANL A, #data ; (A)-(A)data ANL direct, A ;(direct)-(A)(direct) ANL direct, #data;(direct-(direct)data (2) 逻辑或运算指令: ORL A, Rn ;(A)-(A)(Rn) ORL A, direct ; (A)-(A)(direct) ORL A, Ri ; (A)-(A)(Ri) ORL A, #data ; (A)-(A)data ORL direct, A ;(direct)-(A)(direct) ORL direct, #data; (direct)-(direct)data (3) 逻辑异或运算指令: XRL A, Rn ;(A)-(A)(Rn) XRL A, direct ; (A)-(A)(direct) XRL A, Ri ; (A)-(A)(Ri) XRL A, #data ; (A)-(A)data XRL direct, A ;(direct)-(A)(direct) XRL direct, #data; (direct)-(direct)data (4) 累加器清0和去反指令 CLR A ;(A)-0 (累加器清0指令) CLR A ;(A)-(A) (累加器取反指令) (5) 累加器移位指令: 不带进位Cy循环左移: RL A ;Dn+1-Dn,D0Dn,D0-D7D7D6D5D4D3D2D1D0 带进位Cy循环左移: RLC A ;Cy-D7,Dn+1-Dn,D0D7,Dn+1-Dn,D0-Cy (十二) 控制转移指令 1 无条件转移指令: (1) 长转移指令 LJMP addr16 ;(PC)-addr16 (2) 绝对转移指令AJMP addr11 ;(PC)-(PC)+2,(PC)100-addr11 (3) 短转移指令 SJMP rel ;(PC)-(PC)+2+rel (4) 变址寻址转移指令JMP A+DPTR ;(PC)-(A)+(DPTR) 2 条件转移指令: (1) 累加器判0转移指令: JZ rel ;如果(A)=0,跳转到目标语句,否则顺序执行 JNZ rel ;如果(A)0,跳转到目标语句,否则顺序执行 (2) 比较转移指令: CJNZ A, #data, rel ;如果(A)data,则跳转到目标语句,否则程序顺序执行 CJNZ A direct, rel ; 如果(A)(direct),则跳转到目标语句,否则程序顺序执行 CJNZ Rn #data, rel ; 如果(A)data,则跳转到目标语句,否则程序顺序执行 CJNZ Ri #data, rel ; 如果(A)data,则跳转到目标语句,否则程序顺序执行 (3) 循环控制转移指令: DJNZ Rn, rel ;(Rn)先减1,如减1后(Rn)0,则跳转到目标语句;否则顺序执行 DJNZ firect, rel ; (direct)先减1,如减1后(direct)0,则跳转到目标语句;否则顺序执行 (十三) 子程序调用和返回指令 (1) 绝对调用指令: ACALL addr11 (2) 长调用指令: LCALL addr16 (3) 返回指令: RET 子程序返回 RETI 中断服务程序返回 (十四) 空操作指令 NOP 空操作指令是一条特殊指令,单片机在执行该指令时不进行任何操作,只是消耗1个机器周期的时间,所以该指令长用于延时程序.软件陷阱程序等 (十五) 位操作类指令 (1) 位传送指令: MOV C,bit ;(Cy)-(bit),bit位的状态不变 MOV bit,C ; (bit) - (Cy),Cy位的状态不变 (2) 位置位和复位指令: SETB C ;(Cy)-1 SETB bit ;(bit)-1 CLR C ;(Cy)-0 CLR bit ;(bit)-0 (3) 位运算指令: ANL C,bit ;(Cy)-(Cy)(bit),Cy位和bit位相与,结果赋给Cy ANL C,/bit ;(Cy)-(Cy)(bit),Cy位和bit位相与,结果赋给Cy ORL C,bit ;(Cy)-(Cy)(bit),Cy位和bit位相或,结果赋给Cy ORL C,/bit ;(Cy)-(Cy) (bit),Cy位和bit位相或,结果赋给Cy CPL C ; (Cy)-(Cy),Cy位取反 CPL bit ;(bit)-(bit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字视觉联想反思课件
- 汉字甲课件教学课件
- 海南省省直辖县级行政单位琼海市2024-2025学年八年级下学期7月期末考试数学试卷(含答案)
- 2024-2025学年辽宁省鞍山市铁西区人教版四年级下册期末考试数学试卷(含答案)
- 汉字基本知识培训心得
- 房屋代持协议书4篇
- 通讯网络互联网行业前瞻报告
- 2025合同的订立与履行
- DB46-T 546-2021 非公路用旅游观光车安全管理与服务规范
- 2024年秋新北师大版数学一年级上册教学课件 第四单元 10以内数加与减 第11课时 做个加法表
- 中国卒中患者高血压管理专家共识(2024)解读
- 小艇行业跨境出海战略研究报告
- 三会一课培训内容
- GB/T 45309-2025企业采购物资分类编码指南
- 膜性肾病护理进展
- 销售过程管理培训课件
- 医院医保智能审核与规则解释
- 篮球裁判员手册
- 电焊工安全用电培训
- 安宁疗护服务规范
- 《高血压的护理常规》课件
评论
0/150
提交评论