1 / 21

C51 指令系统

C51 指令系统. Topeak@20080507. 数据传送指令. 以累加器 A 为目的操作数指令( 4 ) MOV A, data ;(data)->(A) MOV A, #data ;#data->(A) MOV A, Rn ;(Rn)->(A) MOV A,@Ri ;((Ri))->(A) 以寄存器 Rn 为目的操作数指令( 3 ) MOV Rn, data MOV Rn, #data MOV Rn, A. 数据传送指令(续). 以直接寻址为目的操作数指令( 5 ) MOV data, data MOV data, #data

blythe
Download Presentation

C51 指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C51 指令系统 Topeak@20080507

  2. 数据传送指令 • 以累加器A为目的操作数指令(4) • MOV A, data ;(data)->(A) • MOV A, #data ;#data->(A) • MOV A, Rn ;(Rn)->(A) • MOV A,@Ri ;((Ri))->(A) • 以寄存器Rn为目的操作数指令(3) • MOV Rn, data • MOV Rn, #data • MOV Rn, A

  3. 数据传送指令(续) • 以直接寻址为目的操作数指令(5) • MOV data, data • MOV data, #data • MOV data, A • MOV data, Rn • MOV data, @Ri • 以间接地址为目的操作数指令(3) • MOV @Ri, data • MOV @Ri, #data • MOV @Ri, A

  4. 数据传送指令(续) • 查表指令(2) • MOVC A, @A+DPTR ;((A))+(DPTR)(A) • MOVC A, @A+PC ;((A))+(PC)(A) • 累加器A与片外数据存储器RAM传送指令(4) • MOVX @DPTR, A • MOVX A, @DPTR • MOVX A, @Ri • MOVX @Ri, A • 堆栈操作指令(2) • PUSH data • POP data

  5. 数据传送指令(续) • 交换指令(5) • XCH A,Rn • XCH A, @Ri • XCH A, data • XCH A, @Ri ;(A3~0)((Ri)3~0) • SWAP A ;(A3~0)(A7~4) • 16位数据据传送指令(1) • MOV DPTR, #data16 ;#dataH(DPH), #dataL(DPL)

  6. 算术运算指令 • 加法指令(4) • ADD A, #data • ADD A, data • ADD A, Rn • ADD A, @Ri • 带进位加法指令(4) • ADDC A, #data • ADDC A, data • ADDC A, Rn • ADDC A, @Ri

  7. 算术运算指令(续) • 带借位减法指令(4) • SUBB A, #data • SUBB A, data • SUBB A, Rn • SUBB A, @Ri • 乘法指令(1) • MUL AB ;(A)*(B)(A),(B) • 除法指令(1) • DIV AB ;(A)/(B)(A),(A)%(B)(B)

  8. 算术运算指令(续) • 加1指令(5) • INC A • INC data • INC @Ri • INC Rn • INC DPTR

  9. 算术运算指令(续) • 减1指令(4) • DEC A • DEC data • DEC @Ri • DEC Rn • 十进制调整指令(1) • DA A ;跟在ADD或ADDC之后

  10. 逻辑运算和移位指令 • 循环移位指令(4) • RL A • RR A • RLC A • RRC A • 累加器半字节交换指令(1) • SWAP A • 求反指令(1) • CPL A • 清零指令(1) • CLR A

  11. 逻辑运算和移位指令(续) • 逻辑与操作指令(6) • ANL A, data • ANL data, #data • ANL A, #data • ANL A, Rn • ANL data, A • ANL A, @Ri

  12. 逻辑运算和移位指令(续) • 逻辑或操作指令(6) • ORL A, data • ORL data, #data • ORL A, #data • ORL A, Rn • ORL data, A • ORL A, @Ri

  13. 逻辑运算和移位指令(续) • 逻辑异或操作指令(6) • XRL A, data • XRL data, #data • XRL A, #data • XRL A, Rn • XRL data, A • XRL A, @Ri

  14. 控制转移指令 • 无条件转移指令(4) • LJMP addr16 • AJMP addr11 • SJMP rel • JMP @A+DPTR

  15. 控制转移指令(续) • 条件转移指令(8) • JZ rel ; A=0,(PC)+2+rel(PC) • JNZ rel ;A!=0 • CJNE A, data, rel ;A!=(data), (PC)+3+rel(PC) • CJNE A, #data, rel ;A!=#data • CJNE Rn, #data, rel ;Rn!=#data • CJNE @Ri, #data, rel ;@Ri!=#data • DJNZ Rn, rel;(Rn)-1(Rn), (Rn)!=0, (PC)+2+rel(PC) • DJNZ data, rel ;(data)-1(data),(data)!=0 • 判零跳转JZ,JNZ;减1非零跳转DJNZ;比较不等跳转CJNE

  16. 控制转移指令(续) • 子程序调用指令(4) • LCALL addr16 • ACALL addr11 • RET • RETI • 空操作指令(1) • NOP

  17. 位操作指令 • 位传送(2) • MOV C, bit • MOV bit, C • 位置位和清除(4) • SETB C • SETB bit • CLR C • CLR bit

  18. 位操作指令(续) • 位逻辑与运算 • ANL C, bit • ANL C, /bit • 位逻辑或运算 • ORL C, bit • ORL C, /bit • 位逻辑非运算 • CPL C • CPL bit

  19. 位操作指令(续) • 位条件转移(5) • JC rel ;若(CY)=1,则PC(PC)+rel • JNC rel ;若(CY)=0,则PC(PC)+rel • JB bit, rel ;若(bit)=1,则PC(PC)+rel • JNB bit, rel ;若(bit)=0,则PC(PC)+rel • JBC bit, rel ;若(bit)=1,则PC(PC)+rel且bit0

  20. 伪指令 • 汇编起始命令ORG • 汇编结束命令END • 等值命令EQU • 数据地址赋值命令DATA • 定义字节指令DB • 定义字命令DW • 定义空间命令DS • 位地址符号命令BIT

More Related