已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8051指令周期表类别指令格式功能简述字节数机器周期数据传送类指令期MOV A, Rn(Rn)(A)Rn中的内容送到累加器A中,Rn=R0-R711MOV Rn,A(A)(Rn) 累加器A中的内容送到寄存器Rn中。11MOV A,Ri(Ri)(A)Ri内容指向的地址单元中的内容送到累加器A,Ri=R0或R111MOVRi, A(A)(Ri) 累加器A中的内容送到以Ri中的内容为地址的RAM单元。11MOV A, #data#data(A) 立即数送到累加器A中。21MOV A, data(data)(A) 直接单元地址中的内容送到累加器A21MOV data, A(A)(data)累加器A中的内容送直接单元地址。21MOV Rn,#data#data(Rn)立即数直接送到寄存器Rn中。21MOV data, #data#data(data)立即数送直接寻址单元 。32MOVRi, #data#data(Ri)立即数送到以Ri中的内容为地址的RAM单元。21MOV data, Rn(Rn)(data)寄存器中的内容送直接寻址单元 。22MOV Rn, data(data)(Rn)直接寻址单元中的内容送寄存器 。22MOV data,Ri(Ri)(data)内部RAM单元送直接寻址单元 。22MOVRi, data(data)(Ri)直接寻址单元送内部RAM单元 。22MOV data2,data1(data1)(data2)直接寻址单元中的内容送直接寻址单元 。32MOV DPTR, #data16#dataH(DPH),#dataL(DPL)16位常数的高8位送到DPH,低8位送到DPL32MOVX A,Ri(Ri)(A) 寄存器Ri指向片外RAM地址中的内容送到累加器A中。12MOVXRi, A(A)(Ri) 累加器中的内容送到寄存器Ri指向片外RAM地址中。12MOVX A,DPTR(DPTR)(A) 数据指针指向片外RAM地址中的内容送到累加器A中。12MOVXDPTR, A(A)(DPTR) 累加器中的内容送到数据指针指向片外RAM地址中。12MOVC A,A+DPTR(A)+(DPTR)(A) 表格地址单元中的内容送到累加器A中。12MOVC A,A+PC(PC)+1(A),(A)+(PC)(A) 表格地址单元中的内容送到累加器A中。12算术运算类指令XCH A, Rn(A)(Rn)累加器与工作寄存器Rn中的内容互换。11XCH A,Ri(A)(Ri)累加器与工作寄存器Ri所指的存储单元中的内容互换。11XCHD A, data(data)(A)累加器A的内容与直接寻址单元的内容交换 。21XCHD A,Ri(A3-0)(Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换。11SWAP A(A3-0)(A7-4)累加器中的内容高低半字节互换。11POP data(SP)(data)(SP)-1(SP), 堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作22PUSH data(SP)+1(SP),(data)(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中22ADD A, Rn(A)+(Rn)(A) 累加器A中的内容与工作寄存器Rn中的内容相加,结果存在A中。11ADD A,Ri(A)+(Ri)(A) 累加器A中的内容与工作寄存器Ri所指向地址单元中的内容相加,结果存在A中。11ADD A, data(A)+(data)(A) 累加器A中的内容与直接地址单元中的内容相加,结果存在A中。21ADD A, #data(A)+#data(A) 累加器A中的内容与立即数#data相加,结果存在A中。21ADDC A, Rn(A)+Rn+(C)(A) 累加器A中的内容与工作寄存器Rn中的内容、连同进位位相加,结果存在A中。11ADDC A,Ri(A)+(Ri)+(C)(A) 累加器A中的内容与工作寄存器Ri指向地址单元中的内容、连同进位位相加,结果存在A中。11ADDC A, #data(A)+#data +(C)(A) 累加器A中的内容与立即数连同进位位相加,结果存在A中。21ADDC A, data(A)+(data)+(C)(A) 累加器A中的内容与直接地址单元的内容连同进位位相加,结果存在A中。21INC A(A)+1(A) 累加器A中的内容加1,结果存在A中。11INC Rn(Rn)+1(Rn)寄存器Rn的内容加1,结果送回原地址单元中。11INC data(data)+1(data) 直接地址单元中的内容加1,结果送回原地址单元中。21INCRi(Ri)+1(Ri) 寄存器的内容指向的地址单元中的内容加1,结果送回原地址单元中。11INC DPTR(DPTR)+1(DPTR)数据指针的内容加1,结果送回数据指针中。12DA A在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正。11SUBB A, Rn(A)-(Rn)-(C)(A) 累加器A中的内容与工作寄存器中的内容、连同借位位相减,结果存在A中。11SUBB A,Ri(A)-(Ri)-(C)(A) 累加器A中的内容与工作寄存器Ri指向的地址单元中的内容、连同借位位相减,结果存在A中。11SUBB A, #data(A)-#data -(C)(A) 累加器A中的内容与立即数、连同借位位相减,结果存在A中。21SUBB A, data(A)-(data)-(C)(A) 累加器A中的内容与直接地址单元中的内容、连同借位位相减,结果存在A中。21DEC A(A)-1(A)累加器A中的内容减1,结果送回累加器A中。11DEC Rn(Rn)-1(Rn)寄存器Rn中的内容减1,结果送回寄存器Rn中。11DECRi(Ri)-1(Ri)寄存器Ri指向的地址单元中的内容减1,结果送回原地址单元中。11DEC data(data)-1(data)直接地址单元中的内容减1,结果送回直接地址单元中。21MUL AB(A)(B)(A)和(B) 累加器A中的内容与寄存器B中的内容相乘,结果存在A、B中。14DIV AB(A)(B)(A)和(B) 累加器A中的内容除以寄存器B中的内容,所得到的商存在累加器A,而余数存在寄存器B中。14逻辑运算类指令ANL A, Rn累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。11ANL A,Ri累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。11ANL A, #data累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。21ANL A, data累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。21ANL data, A直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。21ANL data, #data直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。31ORL A, Rn累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。11ORL A,Ri累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。11ORL A,#data累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。21ORL A,data累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。21ORL data A直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。21ORL data, #data直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。31XRL A, Rn累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。11XRL A,Ri累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中。11XRL A,#data累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。21XRL A,data累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。21XRL data, A直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。21XRL data, #data直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。32RL A累加器A中的内容左移一位。11RLC A累加器A中的内容连同进位位CY左移一位。11RR A累加器A中的内容右移一位。11RRC A累加器A中的内容连同进位位CY右移一位。11CPL A累加器中的内容按位取反。11CLR A0(A),累加器中的内容清0。11控制转移类指令ACCALL addr11绝对调用指令,可在2kB空间调用子程序,此时(PC)+ 2(PC),(SP)+ 1(SP),(PC7-0)(SP),(SP)+ 1(SP),(PC15-8)(SP),addr11(PC10-0)22AJMP addr11(PC)+2(PC),addr11(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变。22LCALL addr16长调用指令,可在64kB空间调用子程序。此时(PC)+ 3(PC),(SP)+ 1(SP),(PC7-0)(SP),(SP)+ 1(SP),(PC15-8)(SP),addr16(PC),即分别从堆栈中弹出调用子程序时压入的返回地址。32LJMP addr16addr16(PC),给程序计数器赋予新值(16位地址)。32SJMP rel(PC)+ 2 + rel(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值。22JMPA+DPTR(A)+(DPTR)(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值。12RET子程序返回指令。此时(SP)(PC15-8),(SP)- 1(SP),(SP)(PC7-0),(SP)- 1(SP)12RET1中断返回指令,除具有RET功能外,还具有恢复中断逻辑的功能,需注意的是,RETI指令不能用RET代替。12JZ relA=0,(PC)+ 2 + rel(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行。22JNZ relA0,(PC)+ 2 + rel(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行。22CJNE A, #data, relA#data,(PC)+ 3 + rel(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。32CJNE A, data, relA(data),(PC)+ 3 + rel(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行32CJNE Rn,#data, relA#data,(PC)+ 3 + rel(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。32CJNERi, #data, relA#data,(PC)+ 3 + rel(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行。32DJNZ Rn, rel(Rn)-1(Rn),(Rn)0,(PC)+ 2 + rel(PC)工作寄存器Rn减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行22DJNZ data, rel(Rn)-1(Rn),(Rn)0,(PC)+ 2 + rel(PC)直接地址单元中的内容减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行。32布尔操作类指令NOP这条指令除了使PC加1,消耗一个机器周期外,没有执行任何操作。可用于短时间的延时。11MOV C, bitbitCY,某位数据送CY。21MOV bit, CCYbit,CY数据送某位。21CLR C0CY,清CY11CLR bit0bit,清某一位。21CPL C()CY11CPL bit()bit21SETB C1CY,置位CY11SETB bit1bit,置位某一位21ANL C, bit(CY)(bit)CY22ANL C, /bit(CY)()CY22ORL C, bit(CY)(bit)CY22ORL C, /bit(CY)()CY22JC rel(CY)=1转移,(PC)+2+relPC,否则程序往下执行,(PC)+2PC。22JNC rel(CY)=0转移,(PC)+2+relPC,否则程序往下执行,(PC)+2PC。22JB bit,rel位状态为1转移,(PC)+3+relPC,否则程序往下执行,(PC)+3PC。32JNB bit,rel位状态为0转移,(PC)+3+relPC,否则程序往下执行,(PC)+3PC。32JBC bit,rel位状态为1转移,并使该位清“0” ,(PC)+3+relPC,否则程序往下执行,(PC)+3PC。32C51汇编伪指令:1、DS预留存储区命令格式:标号:DS 表达式值其功能是从指定地址开始,定义一个存储区,以备源程序使用。存储区预留的存储单元数由表达式的值决定。TMP: DS 1从标号TEP地址处开始保留1个存储单元(字节)。2、BIT定义位命令格式:字符名称 BIT 位地址其功能用于给字符名称定义位地址。SPK BIT P3.7经定义后,允许在指令中用SPK代替P3.7。3、USING指令USING指令通知汇编器使用8051的哪一个工作寄存器组。格式:USING表达式(值必须为03,默认值为0。)USING 0使用第0组工作寄存器。4、SEGMENT指令SEGMENT指令用来声明一个再定位段和一个可选的再定位类型。格式:再定位段名SEGMENT段类型再定位类型其中,“再定位段名”用于指明所声明的段。“段类型”用于指定所声明的段将处的存储器地址空间。可用的段类型有CODE、XDATA、DATA、IDATA和BIT。STACK_SEG SEGMENT IDATADATA_SEG SEGMENT DATA5、RSEG再定位段选择指令再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。格式:RSEG段名段名必须是在前面已经声明过的再定位段。DATA_SEG SEGMENT DATA ;声明一个再定位DATA段RSEG DATA_SEG ;选择前面声明的再定位DATA段作为当前段6、绝对段选择指令CSEG绝对代码段DSEG内部绝对数据段XSEG外部绝对数据段ISEG内部间接寻址数据段BSEG绝对位寻址数据段格式:CSEG AT绝对地址表达式DSEG AT绝对地址表达式XSEG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论