单片机指令系统的分类单片机指令系统的分类
单介绍单片机指令系统的分类与书写方式
一、数据传递类指令
数据传送指令包括数据的传送、交换、堆栈数据的压入与弹出,是最基本、使用率最高的一类指令。助记符有MOV、
MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP共八种。
1.MOV类指令及功能(16条)
这类指令的功能是从源操作数到目的操作数的数据传送。
MOV A, Rn ;Rn→A,寄存器Rn的内容送到累加器A
MOV A, direct ;(direct)→A,直接地址中的内容送A
MOV A, @Ri ;(Ri)→A,Ri间址的内容送A
MOV A, #data ;data→A,立即数送A
MOV Rn,, A ;A→Rn,累加器A中的内容送寄存器Rn
MOV Rn, direct ;(direct)→Rn;直接地址中的内容送Rn
MOV Rn, #data ;data→Rn;立即数送Rn
MOV direct, A ;A→(direct),A中的内容送入直接地址中
MOV direct, Rn ;Rn→(direct),寄存器内容送入直接地址中
MOV direct, direct ;(direct) →(direct),源操作数直接地址的内容送入目的操作数的直接地址中
MOV direct, @Ri ;(Ri)→(direct),Ri间址内容送入直接地址中
MOV direct, #data ;data→(direct),立即数送入直接地址中
MOV @Ri, A ;A→(Ri),A中内容送到Ri间址单元中
MOV @Ri, direct ;(direct)→(Ri),直接地址中内容送入Ri间址单元中
MOV @Ri, #data ;data→(Ri),立即数送入Ri间址单元中
MOV DPTR, #data16 ;data16→DPTR,16位常数送入数据指针DPTR中,高8位送入DPH,低8位送入DPH,低8位送入
DPL中
从上述指令可以看出目的操作数有A累加器、Rn寄存器、直接地址direct及间接地址@Ri,源操作数除此之外还多一种立即数
data。
例1R0中有常数30H,而30H地址中有常数50H
执行MOV A, R0后,A=30H,R0不变。
执行MOV A, @R0后A=50H,而不是30H,这条指令的功能是把R0中内容为地址的单元的书送入A,R0中是30H也就是把
30H地址中内容50H送入A。
例2 若(40H)=20H,(50H)=30H
执行MOV 40H, 50H; (50H) →(40H)
结果:(40H)=30H,50H地址中内容仍为30H。
例3若A=40H,R0=30H,
执行MOV @R0, A ;A→(R0)
结果:(30H)=40H,A与R0皆不变,即A=40H,R0=30H。
该指令功能是把A中内容送入R0间址单元即R0中内容为地址的单元。
例4执行MOV DPTR, #2040H ;2040H→DPTR