欢迎来到天天文库
浏览记录
ID:48189098
大小:203.50 KB
页数:33页
时间:2020-01-18
《Sunplus SPCE061A微控制器数据传送类和算逻运算类.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SunplusSPCE061A微控制器数据传送类和算逻运算类1指令分类SPCE061A的指令总共只有41种,可分为四类:数据传送类算逻运算类程序转移控制类其它控制类2数据传送类指令立即数寻址、寄存器寻址、直接地址寻址变址寻址、寄存器间接寻址压栈出栈3立即数寻址、寄存器寻址、直接地址寻址这组指令会执行Rd=X的数据传送操作,即将源操作数X或源操作单元X中的字数据存入目标寄存器Rd。依据寻址方式的不同,X将有不同的意义。4应用举例R1=0x28 //IM6R2=0x2400 //IM16R3=[BP+0x08] //[BP+IM6]R4=[
2、0x30] //A6R5=[0x2480] //A16SR=R2 //R5变址寻址、寄存器间接寻址这组指令会执行X=Rd的数据传送操作,即将寄存器Rd的内容存入目标操作单元X。依据寻址方式的不同,X将有不同的意义;6[BP+0x08]=R3//写入[BP+IM6][0x30]=R4//写入[A6][0x2480]=R5//写入[A16][R2++]=R1//R1的值存储于0x25存储单元R2=R2+1应用举例7压栈PUSHRx,Ryto[Rs]PUSHRxto[Rs]将n(n=1~7,SIZE)个序列寄存器Rx~Ry(Rx~Ry≠S
3、P)中的字数据压入Rs指出地址偏移量初值的存储器中,且总是将序号高的寄存器内容先压入8应用举例9出栈POPRx,Ryfrom[Rs]POPRxfrom[Rs]将一组由Rs指出地址偏移量初值的存储器中的字数据拷贝到n(n=1~7,SIZE)个序列寄存器Rx~Ry(Rx~Ry≠SP)中,且总是先拷贝数据到序号低的寄存器内。弹出指令亦可用于从子程序返回或从中断服务子程序返回时用,即它等效于指令RETF或RETI。(当Rx~Ry=SR~PC时,POP指令的操等效于指令RETF或RETI)10应用举例11算逻运算类指令顾名思义这类指令就使用来完成一些算术逻辑运算的,
4、基本是执行Rd=X#Y的算术逻辑运算。依据寻址方式的不同,X、Y将有不同的意义。12加法运算这组指令会执行Rd=X+Y的算术运算,即将源操作数X、Y或源操作单元X、Y中的字数据进行不带进位的加法运算,结果存入Rd寄存器。13应用举例R1+=0x28 //IM6R2=R1+0x2400 //IM16R3+=[BP+0x08] //[BP+IM6]R4+=[0x30] //[A6]BP=R4+[0x2480] //[A16]SR+=R2 //R14带进位的加法运算这组指令会执行Rd=X+Y+C的算术运算,即将源操作数X、Y或源操
5、作单元X、Y中的字数据进行带进位的加法运算,结果存入Rd寄存器。15应用举例R1=0x28,Carry //R1=R1+IM6+进位CR2=R1+0x2400,Carry //R2=R1+IM16+进位CR3+=[BP+0x08],Carry //R3=R3+[BP+IM6]+进位CR4+=[0x30],Carry//R4=R4+[A6]+进位CBP=R4+[0x2480],Carry//BP=R4+[A16]+进位CSR+=R2,Carry //SR=SR+R2+进位CPC+=D:[BP++],Carry //写入PC,16减法运
6、算这组指令会执行Rd=X-Y的算术运算,即将源操作数X、Y或源操作单元X、Y中的字数据进行不带借位的减法运算,结果存入Rd寄存器。17应用举例R1-=0x28 //R1=R1-IM6R2=R1-0x2400 //R2=R1-IM16R3-=[BP+0x08] //R3=R1-[BP+IM6]R4-=[0x30] //R4=R4-[A6]BP=R4-[0x2480] //BP=R4-[A16]SR-=R2 //SR=SR-R2PC-=D:[R5++] //写入PC,18不带借位的减法运算这组指令会执行Rd=X-
7、Y-C=X+(~Y)+C的算术运算,即将源操作数X、Y或源操作单元X、Y中的字数据进行带借位的减法运算,结果存入Rd寄存器。19应用举例R1-=0x20,Carry //R1=R1-IM6-进位CR2-=R1+0x2400,Carry //R2=R1-IM16-进位CR3-=[BP+0x08],Carry//R3=R3-[BP+IM6]-进位CR4-=[0x30],Carry //R4=R4-[A6]-进位CBP=R4-[0x2480],Carry//BP=R4-[A16]-进位CSR-=R2,Carry //SR=SR-R2-进
8、位CPC-=D:[BP++],Carry //写入PC,20取补
此文档下载收益归作者所有