1.数据传送指令 寄存器寻址: MOV R0,30H ;把30H单元内容赋给寄存器R0 直接寻址: MOV ACC,30H ;把30H单元内容赋给累加器A 立即寻址: MOV R0,#30H ;把立即数30H赋给寄存器R0 寄存器间接寻址: MOV RO,@R1 ;把R1内容存放的地址单元内的数赋给R0 变址寻址(查表指令):MOVC A,@A+DPTR ;((A)+(DPTR))的值赋给A 相对寻址: SJMP $ ;转移到自身的首地址,构成死循环 位寻址: CLR C ;清零Cy 外部数据传送指令: MOV DPTR,#1818H ;将外部存储器单元的地址数赋给DPTR寄存器 MOVX A,@DPTR ;将DPTR指定的外部数据存储器单元中的数据送入A MOVX A,@Ri ; 堆栈指令: PUSH ACC ;(SP)++,(A)赋给((SP)) pop 78H ;(Sp)--,((Sp))赋给78H单元 数据交换指令: XCH A,R0 ; A与R0数据交换 XCHD A,R0 ;A与R0低四位数据交换 SWAP A ;A的高四位与低四位交换 2.算术运算指令 不带进位加法: ADD A,R0 ;(A)=(A)+(R0); 带进位加法: ADDC A,RO ;(A)=(A)+(R0)+(Cy) 加一: INC A ;(A)++ 减法: SUBB A,R0 ;(A)=(A)-(R0)-(Cy) 减一: DEC A ;(A)-- 乘法: MUL AB ;(B)(A)=(A)*(B) 除法: DIV AB ;(A)..(B)=(A)/(B) 3.逻辑运算和移位指令 逻辑与: ANL A,R0 ;(A)=(A)&(R0) 逻辑或: ORL A,R0 ;(A)=(A)|(R0) 逻辑异或: XRL A,R0 ;(A)=(A)异或(R0) 累加器清零: CLR A ;(A)=0 累加器取反: CPL A ;(A)=!(A) 不带进位左移: RL A; 不带进位右移: RR A; 带进位左移: RLC A; 带进位右移: RLR A; 4.位操作指令 位传送: MOV bit,C; 位清零: CLR C; 位置1: SETB C; 位运算: ANL bit,C; ORL bit,C; 5.控制转移指令 无条件转移: LJMP MAIN; 子程序调用: LCALL FUN1; 子程序返回: RET 累加器判0转移: JZ FUN1 ;若A==0,则转移FUN1,否则执行下一条指令 JNZ FUN1 ;若A!=0,则转移FUN1,否则执行下一条指令 减一条件转移: DJNZ R0,FUN1 ;(R0)--,若R0!=0,则转移FUN1,否则执行下一条指令 比较条件转移: CJNE R0,A,FUN1 ;若R0!=A,则转移FUN1,否则执行下一条指令 以Cy内容转移: JC FUN1 ;若(Cy)!=0,转移FUN1,否则执行下一条指令 JNC FUN1 ;若(Cy)=0,转移FUN1,否则执行下一条指令 以bit内容转移: JB bit,FUN1 ;若(bit)!=0,转移FUN1,否则执行下一条指令 JNB bit,FUN1 ;若(bit)==0,转移FUN1,否则执行下一条指令 6.空操作指令 NOP
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179276.html原文链接:https://javaforall.net
