单片机汇编指令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机汇编指令

单片机汇编指令:为解决某些特定的问题代码中必须嵌入汇编语言以代替C语言完成的单片机的编程,汇编语言对于程序调试是不可或缺的。它包括:数据传送类指令,算术运算类指令,逻辑运算与循环类指令,控制转移类指令,位操作(布尔操作)类指令。

现在单片机的编程大多是C语言完成但有时代码中必须嵌入汇编语言解决某些特定的问题,对于程序调试汇编语言更是不可或缺

一.数据传送类指令:

(1)一般传送指令:

①8位传送:

1 MOV A,Rn ;A←(Rn):寄存器内容送入累加器

2 MOV A,direct ;A←(direct):直接地址单元中的数据送入累加器

3 MOV A,@Ri ;A←((Ri)):间接RAM 中的数据送入累加器

4 MOV A,#data ;A←(data):立即数送入累加器

5 MOV Rn,A ;Rn←(A):累加器内容送入寄存器

6 MOV Rn,direct ;Rn←(direct):直接地址单元中的数据送入寄存器

7 MOV Rn,#data ;Rn←(data):立即数送入寄存器

8 MOV direct,A ;direct←(A):累加器内容送入直接地址单元

9 MOV direct,Rn ;direct←(Rn):寄存器内容送入直接地址单元

10 MOV direct,direct;direct←(direct):直接地址单元中的数据送入另一个直接地址单元

11 MOV direct,@Ri ;direct←(@Ri):间接RAM 中的数据送入直接地址单元

12 MOV direct,#data ;direct←(data):立即数送入直接地址单元

13 MOV @Ri,A;Ri←(A):累加器内容送入间接RAM 单元

14 MOV @Ri,direct ;Ri←(direct)直接地址单元数据送入间接RAM 单元

15 MOV @RI,#data ;Ri←(data):立即数送入间接RAM 单元

②16位传送:

16 MOV DRTR,#data16 ;(DRTR) ←(data16):16 位立即数送入地址寄存器

(2)特殊传送指令:

①读取常数表:

17 MOVC A,@A+DPTR ;A←((A)+(DPTR)):以DPTR为基地址变址寻址单元中的数据送入累加器

18 MOVC A,@A+PC;A←((A)+(PC)):以PC 为基地址变址寻址单元中的数据送入累加器

②读写片外RAM及接口单元数据:

读片外RAM:

19 MOVX A,@Ri ;A←((Ri)):外部RAM(8 位地址)送入累加器

20 MOVX A,@DPTR ;A←((DPTR)):外部RAM(16 位地址)送入累加器

写片外RAM:

21 MOVX @Ri,A ; (Ri)←(A):累计器送外部RAM(8 位地址)

22 MOVX @DPTR,A ;(DPTR)←(A):累计器送外部RAM(16 位地址)

③堆栈操作指令:

23 PUSH direct;SP←(SP),(SP)←(direct)直接地址单元中的数据压入堆栈

24 POP direct ;(direct)←((SP)), SP←(SP)-1:弹栈送直接地址单元

④数据交换指令:

字节交换:

25 XCH A,Rn ;(A)←→(Rn):寄存器与累加器交换

26 XCH A,direct ;(A)←→(direct):直接地址单元与累加器交换

27 XCH A,@Ri; (A)←→(Ri):间接RAM 与累加器交换

半字节交换:

28 XCHD A,@Ri ;((Ri).3~(Ri).0) ←→(ACC.3~ACC.0):间接RAM 的低半字节与累加器的弟半字节交换

29 SWAP A ;(ACC.7~ACC.4)←→(ACC.3~ACC.0):累加器的高低4位互换

二.算术运算类指令:

(1)不带进位加法:

1 ADD A,Rn ;A←(A)+(Rn):寄存器内容加到累加器

2 ADD A,direct;A←(A)+(direct):直接地址单元的内容加到累加器

3 ADD A,@Ri;A←(A)+((Ri)):间接ROM 的内容加到累加器

4 ADD A,#data;A←(A)+ data:立即数加到累加器

(2)带进位加法:

5 ADDC A,Rn ;A←(A)+(Rn)+(CY):寄存器内容带进位加到累加器

6 ADDC A,direct;A←(A)+(direct)+(CY):直接地址单元的内容带进位加到累加器

7 ADDC A,@Ri ;A←(A)+((Ri))+(CY):间接ROM 的内容带进位加到累加器

8 ADDC A,#data;A←(A)+ data+(CY):立即数带进位加到累加器

(3)加1:

9 INC A;A←(A)+1:累加器加1

10 INC Rn;A←(Rn)+1:寄存器加1

11 INC direct;A←(direct)+1:直接地址单元加1

12 INC @Ri;(Ri)←((Ri))+1:间接RAM 单元加1

13 INC DPTR;DPTR←(DPTR)+1:地址寄存器DPTR 加 1

(4)十进制调整:

DA A;调整A的内容为正确的BCD码

(5)带借位减法:

14 SUBB A,Rn ;A←(A)-(Rn)-(CY):累加器带借位减寄存器内容

相关文档
最新文档