89C51汇编指令集.docx_第1页
89C51汇编指令集.docx_第2页
89C51汇编指令集.docx_第3页
89C51汇编指令集.docx_第4页
89C51汇编指令集.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

寻址方式表2-1寻址方式定义例子使用范围备注寄存器寻址直接用寄存器名称作为操作数进行寻址MOV A,R0MOV P1,A就是A到P1口ADD A,R0当前工作寄存器组R0R7ABCDPTR直接寻址操作数为片内RAM单元的地址MOV A,3AHMOV A,P1MOV A,90H包括32个工作寄存器组在内片内RAM低128字节SFRSFR(只能用直接寻址)立即数寻址直接一字节或两字节的数,用#来标明如:MOV DPTR,#DATA16MOV DPTR,#2000HMOV R0,#31HROM寄存器间接寻址用给出寄存器内的内容作为地址所指向的寄存器中内容为操作数,用表明MOV A,R0MOV A,DPTRR0或R1可以间接寻址片内RAM低128字节地址和片外RAM的低128字节地址。SP(仅是PUSH和POP)间接寻址64KB片外RAM。不可以SFR片外RAM可以利用R0,R1,DPTR变址寻址以PC或DPTR中的内容作为基地址,以A中内容作为地址偏移量两者相加得到操作数地址MOVC A,A+DPTR只能访问ROM范围为64KB只能读取不能写入多用于查表相对寻址以PC的值为源地址与给出的偏移量rel相加得到目的地址JC rel如果CY=1,(PC)+2+relSJMP 55HROM256字节范围内rel范围是-128127正向:rel=目的地址-源地址-2反向:rel=(目的地址-(源地址+2)的补码=FEH-|地址差|寻址方式表2-2寻址方式定义例子使用范围备注位寻址对某一位寻址bitCLR bit片内RAM中20H2FH共128位字节地址可以被8整除的SFR可以直接用位地址也可以用寄存器名字加位数表如PSW.389C51 指令系统可分为5 大类:数据传送指令(28 条) ;算术运算指令(24 条) ;逻辑运算及移位指令(25 条) ;控制转移指令(17 条) ;位操作指令或布尔操作(17 条)。传送指令2-1类型助记符用途格式例子备注数据传送移动MOV目的地址为累加器A4个MOV A,RnMOV A,directMOV A,RiMOV A,#data只影响PSW的P标志位目的地址为寄存器Rn3个MOV Rn,AMOV Rn,directMOV Rn,#dataMOV R5,AMOV R5,70HMOV R5,#A3H没有MOV Rn,Rn目的地址为直接地址5个MOV direct,AMOV direct,RnMOV direct,directMOV direct,RiMOV direct,#dataMOV direct,direct前为源地址后为目的地址目的地址为间接地址3个MOV Ri,AMOV Ri,directMOV Ri,#data图1-116位立即数1个MOV DPTR,#data16MOV DPTR,#1234HdataH到DPHdataL到DPL唯一的16位立即数传送MOVC查找表2个MOVC A,A+DPTRMOVC A,A+PC (PC)+1到PC后,(A)+(PC)到A图1-2传送指令2-2类型助记符用途格式例子备注数据传送MOVX累加器A与片外RAM之间传送4个MOVX A,RiMOVX A,DPTRMOVX Ri,AMOVX DPTR,A前两个使/RD=0后两个使/WR=0Ri寻址片外RAM 0255字节DPTR寻址片外RAM 064KB栈指令PUSH入栈1个PUSH direct(SP)+1(SP)(direct) (SP)栈指令POP出栈1个POP direct(SP) direct(SP)-1(SP)先进后出交换指令XCH字节交换3个XCH A,RnXCH A,directXCH A,Ri交换指令XCHD半字节交换1个XCHD A,Ri低位互换,高位不变图1-1间接寻址图1-2查找表算术运算指令2-1类型助记符用途格式例子备注算术运算指令ADD8位无符号二进制数和累加器A中的数相加不加进位4条ADD A,RnADD A,directADD A,RiADD A,#data结果存于A中第3位进位AC置1否则为0第7位进位CY置1,否则为0同时影响溢出OV和奇偶P标志位OV=7位和6位异或ADDC同上不同的是结果加进位CY4条ADDC A,RnADDC A,directADDC A,RiADDC A,#data影响标志位AC,CY,OV,PSUBB带借位CY的减法4条SUBB A,RnSUBB A,directSUBB A,RiSUBB A,#data(A)-CY-XX(A)该位表示在进行有符号数的加减法时是否发生溢出;当0V=1时,表示有符号数运算结果发生了溢出,OV=0时,表示有符号数运算结果没有溢出。第7位如果产生借位,会使CY置1,否则为0当第一位相减时,首先将CY清零MULA与B中的两个8位无符号数相乘,结果为16位,低字节在A,高字节在B1条MUL AB结果大于0FFH,OV置1算术运算指令2-2类型助记符用途格式例子备注算术运算指令DIVA与B中的两个8位无符号数相除,商在A,余数在B1条DIV ABCY和OV清零如果B中结果为00H,OV置1INC内容加15条INC AINC RnINC directINC RiINC DPTR不影响PSW,即使溢出也不影响注意与ADD的区别DEC内容减14条DEC ADEC RnDEC directDEC Ri同INC相同注意没有DPTRDAADD或ADDC后,压缩BCD数相加结果的调整,再存于A1条DA A(A)=0101011B(56 BCD数)(R3)=01100111B(67 BCD数)ADDC A,R3得到10111110B(0BEH)CY=1DA A高低4位都大于9,所以加66H来调整结果为124低4位大于9或第三位产生进位即AC=1,则低四位加6H高4位大于9或CY=1,则高四位加6H也就是说,判断高低4位是否大于9、AC=1和CY=1对结果加06H,60H或66H对CY有影响对OV无影响不能直接用于十六进制数转换成BCD数,也不能直接用于减法,减法可先换成补码,相加后进行调整逻辑操作指令1-1类型助记符用途格式例子备注逻辑操作指令CLR清零A1条CLR ACPL取反A全部内容1条CPL A不影响标志位RL循环左移A一位1条RL ARR循环右移A一位1条RR ARLC带进位循环左移A一位1条RLC A用于累加器A中内容*2RRC带进位循环右移A一位1条RRC ASWAPA中的高低4位内容互换1条SWAP A(A)=FAHSWAP A(A)=AFHANL逻辑与6条ANL A,RnANL A,directANL A,RiANL A,#dataANL direct,AANL direct,#data后两条是直接地址操作如果是I/O端口,则可以是“读-修改-写”操作ORL逻辑或ORL A,RnORL A,directORL A,RiORL A,#dataORL direct,AORL direct,#data后两条是直接地址操作如果是I/O端口,则可以是“读-修改-写”操作XRL逻辑异或XRL A,RnXRL A,directXRL A,RiXRL A,#dataXRL direct,AXRL direct,#data后两条是直接地址操作如果是I/O端口,则可以是“读-修改-写”操作注:都置影响P标志位图1-3逻辑操作跳转指令3-1类型助记符用途格式过程备注无条件转移指令AJMP短转移指令AJMP addr11( PC) + 2PC , addr11PC100 , (PC1511 )不变2KB范围LJMP长转移指令LJMP addr16addr16PC64KB程序存储器的任何单元由于需要三个字节,占用多SJMP相对转移(短转移)指令SJMP relSJMP 目的地址标号(PC) + 2PC, ( PC) + relPCrel是带符号的8位偏移字节00H7FH对应0127正向转移80HFFH对应-128-1反向转移特别注意:rel=FEH时也就是-2,目的地址=PC+2-2=PC,会造成无限循环JMP间接转移指令JMP A+DPTR(A) + (DP TR)PC对DPTR,A和标志位无影响可散转散转程序是分支程序的一种,可实现多分支转移。根据某种输入或运算的结果,分别转向各个处理程序段取指令空操作指令NOP单字节指令,只是让PC+1,多用于产生机器周期延迟NOP跳转指令3-2类型助记符用途格式过程备注有条件转移JZA中内容全为0进行偏移跳转JZ relrel为带符号8位数-128127共256字节也可以是目标符号代替JNZA中内容不全为0进行跳转JNZ relrel为带符号8位数-128127共256字节也可以是目标符号代替CJNE比较转移指令CJNE A,direct,rel(PC)+3PC(direct)(A),(PC)+rel(PC)且1CY(PC)+3PC(direct)=(A),(PC)+rel(PC)且0CYCJNE A,#data,rel(PC)+3PC#data(A),(PC)+rel(PC)且1CY(PC)+3PC#data=(A),(PC)+rel(PC)且0CY跳转指令3-3类型助记符用途格式过程备注有条件转移CJNE比较转移指令CJNE Rn,#data,rel(PC)+3PC#data( Rn),(PC)+rel(PC)且1CY(PC)+3PC#data=( Rn),(PC)+rel(PC)且0CYCJNE Ri,#data,rel(PC)+3PC#data(Ri),(PC)+rel(PC)且1CY(PC)+3PC#data= (Ri),(PC)+rel(PC)且0CYDJNZ循环转移指令DJNZ Rn,rel(PC)+2PC(Rn)-1Rn如果(Rn)0则(PC)+relPC如果(Rn)=0结束循环,程序往下执行图1-5DJNZ direct,rel(PC)+2PC(direct)-1direct如果(direct)0则(PC)+relPC如果(direct)=0结束循环,程序往下执行图1-4 比较转移图1-5 循环转移条用指令1-1类型助记符用途格式过程备注调用返回指令ACALL在2KB地址空间内调用ACALL addr11(PC)+2PC(SP)+1SP(PC07)(SP)(SP)+1SP(PC158)(SP)addr100PC100(PC1511)不变LCALL在64KB的程序存储器范围内调用LCALL addr16(PC)+3PC(SP)+1SP(PC07)(SP)(SP)+1SP(PC158)(SP)Addr150PC150RET子程序返回到主程序RET(SP)PC158(SP)-1SP(SP)PC70(SP)-1SPRETI中断返回指令RETI同上返回的同时开放中断逻辑图1-6 调用返回指令示意图位操作指令2-1类型助记符用途格式过程备注位数据传送指令MOV传送MOV C,bitMOV bit,Cbit若为00H7FH是片内RAM(20H2FH单元)的128位地址若为80HFFH则在11个SFR中也可以是I/O口,共32个P0.0P0.7, P1.0P1.7, P2.0P2.7, P3.0P3.7本操作必须有一方是C位修正指令CLR位清零CLR CCLR bitSETB位置1SETB CSETB bitCPL位取反CPL CCPL bit位逻辑运算指令ANL逻辑与ANL C,bitANL C,/bit/bit是bit取反后运算,但bit内容不变ORL逻辑或ORL C,bitORL C,/bit位条件转移类指令JC检测C若C=1则偏移转移若C=0则顺序执行JC rel(PC)+2PC若(C)=1则(PC)+relPC若(C)=0则顺序执行注意(PC)+2与JZ正好相反JNC检测C若C=0则偏移转移若C=1则顺序执行JNC rel(PC)+2PC若(C)=0则(PC)+relPC若(C)=1则顺序执行位操作指令2-2类型助记符用途格式过程备注位条件转移类指令JB检测bit若bit=1则偏移转移若bit=0则顺序执行JB bit,rel(PC)+3PC若(bit)=1则(PC)+relPC若(bit)=0则顺序执行注意(PC)+3JNB检测bit若bit=0则偏移转移若bit=1则顺序执行JNB bit,rel(PC)+3PC若(bit)=0则(PC)+relPC若(bit)=1则顺序执行JBC检测bit若bit=1则偏移转移,且bit清零若bit=0则顺序执行JBC bit,rel(PC)+3PC若(bit)=1则(PC)+relPC且0bit若(bit)=0则顺序执行bit清零注意:1.位累加器C就是进位标志位CY。 2.位地址是片内RAM字节地址20H2FH,一共128个位,地址为00H7FH。还有单元地址可被8整除的SFR。 3ACC(E0HE7H)、B(F0HF7H)和片内RAM的128个位可做软件标志或存储位变量 4.位表达方式: (1)直接位地址,如D4H(2)点操作符号方式,如PSW.4(3)位名称方式,如RS1(4)用户自定义,用伪指令bit伪指令2-1类型助记符用途格式例子备注伪指令ORG汇编起始命令规定了该指令后的程序放在ROM的起始地址ORG 16位地址ORG 2000HSTART:MOV A,#64HSTART在2000HORG可多次出现END汇编程序结束后面的单片机不管了ENDEQU给数据地址,代码地址,位地址或一个立即数定义一个名字字符名称 EQU项字符名称可以是一个8位的也可以是16位的AA EQU R1MOV A,AA就是用AA代表R1DELY EQU 07EBHDELY就是16位的1.EQU定义的字符名必须先定义后使用DATA可以后定义先使用2.EQU可以把一个汇编符号赋值给字符名称,DATA只能把数据赋给字符名3.DATA可把表达式赋值给字符名称,其表达式必须是可求值的一般D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论