新浪博客

[转载]DSP指令一览表

2013-12-19 11:36阅读:
原文作者:yan_08_14


附录6 TMS320C54x 指令系统一览表(按指令功能排列)
一、算术运算指令
1. 加法指令



字数
周期
ADD Smem,src
src=src+Smem
操作数加至累加器
1
1
ADD Smem,TS,src
src=src+Smem<<TS
操作数移位后加至累加器
1
1
ADD Smem,16,src[,dst]
dst=src+Smem<<16
操作数左移16位加至累加器
1
1
ADD Smem[,SHIFT],src[,dst]
dst=src+Smem<<SHIFT
操作数移位后加到累加器
2
2
ADD Xmem,SHFT,src
src=src
+Xmem<<SHFT
操作数移位后加到累加器
1
1
ADD Xmem,Ymem,dst
dst=Xmem<<16+Ymem<<16
两个操作数分别左移16位后加到累加器
1
1
ADD #lk[,SHFT],src[,dst]
dst=src+#lk<<SHFT
长立即数移位后加到累加器
2
2
ADD #lk,16,src[,dst]
dst=src+#lk<<16
长立即数左移16位后加到累加器
2
2
ADD src,[,SHIFT][,dst]
dst=dst+src<<SHIFT
累加器移位后相加
1
1
ADD src,ASM[,dst]
dst=dst+src<<ASM
累加器按ASM移位后相加
1
1
ADDC Smem,src
src=src+Smem+C
操作数带进位加至累加器
1
1
ADDM #lk,Smem
Smem=Smem+#lk
长立即数加至存储器
2
2
ADDS Smem,src
src=src+uns(Smem)
符号位不扩展的加法
1
1

2. 减法指令



字数
周期
SUB Smem,src
src=src—Smem
从累加器中减去操作数
1
1
SUB Smem,TS,src
src=src—Smem<<TS
从累加器中减去移位后的操作数
1
1
SUB Smem,16,src[,dst]
dst=src—Smem<<16
从累加器中减去左移16位后的操作数
1
1
SUB Smem[,SHIFT],src[,dst]
dst=src—Smem<<SHIFT
操作数移位后与累加器相减
2
2
SUB Xmem,SHFT,src
src=src—Xmem<<SHFT
操作数移位后与累加器相减
1
1
SUB Xmem,Ymem,dst
dst=Xmem<<16—Ymem<<16
两个操作数分别左移16位后相减
1
1
SUB #lk[,SHFT],src[,dst]
dst=src—#1k<<SHFT
长立即数移位后与累加器相减
2
2
SUB #lk,16,src[,dst]
dst=src—#1k<<16
长立即数左移16位后与累加器相减
2
2
SUB src[,SHIFT][,dst]
dst=dst—src<<SHIFT
源累加器移位后与目的累加器相减
1
1
SUB src,ASM[,dst]
dst=dst—src<<ASM
源累加器按ASM移位后与目的累加器相减
l
l
SUBB Smem,src
src=src—Smem—C()
从累加器中带借位减操作数
1
1
SUBC Smem,src
If (src—Smem<<15)≥0
src=(src—Smem<<15)<<1+1
Else
src=src<<l
有条件减法
1
1
SUBS Smem,src
src=src—uns(Smem)
符号位不扩展的减法
1
1

3. 乘法指令



字数
周期
MPY Smem,dst
dst=T*Smem
T寄存器值与操作数相乘
1
1
MPYR Smem,dst
dst=rnd(T*Smem)
T寄存器值与操作数相乘(带舍入)
1
1
MPY Xmem,Ymem,dst
dst=Xmem*Ymem,T=Xmem
两个操作数相乘
1
1
MPY Smem,#lk,dst
dst=Smem*#lk,T=Smem
长立即数与操作数相乘
2
2
MPY #lk,dst
dst=T*#lk
长立即数与T寄存器值相乘
2
2
MPYA dst
dst=T*A(32-16)
T寄存值与累加器A高位相乘
1
1
MPYA Smem
B=Smem*A(32-16),T=Smem
操作数与累加器A高位相乘
1
1
MPYU Smem,dst
dst=uns(T)*uns(Smem)
无符号数乘法
1
1
SQUR Smem,dst
dst=Smem*Smem,T=Smem
操作数的平方
1
1
SQUR A,dst
dst=A(32—16)*A(32—16)
累加器A的高位平方
1
1

4. 乘法累加/减指令



字数
周期
MAC Smem,src
src=src+T*Smem
操作数与T寄存器值相乘后加到累加器
1
1
MAC Xmem,Ymem,src[,dst]
dst=src+Xmern*Ymem,T=Xmem
两个操作数相乘后加到累加器
1
1
MAC #lk,src[,dst]
dst=src+T*#lk
长立即数与T寄存器值相乘后加到累加器
2
2
MAC Smem,#lk,src[,dst]
dst=src+Smem*#lk,T=Smem
长立即数与操作数相乘后加到累加器
2
2
MACR Smem,src
dst=rnd(src+T*Smem)
操作数与T寄存器值相乘后加到累加器(带舍入)
1
1
MACR Xmem,Ymem,src[,dst]
dst=rnd(src+Xmem*Ymem),T=Xmem
两个操作数相乘后加到累加器(带舍入)
1
1
MACA Smem[,B]
B=B+Smem*A(32—16),T=Smem
操作数与累加器A高位相乘后加到累加器B
1
1
MACA T,src[,dst]
dst=src+T*A(32—16)
T寄存器值与累加器A高位相乘
1
1
MACAR Smem[,B]
B=rnd(B+Smem*A(32—16)),T=Smem
T寄存器值与累加器A高位相乘后加到累加B(带舍入)
1
1
MACAR T,src[,dst]
dst=rnd(src+T*A(32—16))
累加器A高位与T寄存器值相乘后与源、累加器相加(带舍入)
1
1
MACD Smem,pmad,src
src=src+Smem*pmad,
T=Smem,(Smem+1)=Smem
操作数与程序存储器值相乘后累加并延迟
2
3
MACP Smem,pmad,src
src=src+Smem*pmad,T=Smem
操作数与程序存储器值相乘后加到累加器
2
3
MACSU Xmem,Ymem,src
src=src+uns(Xmem)*Ymem,T=Xmem
元符号数与有符号数相乘后加到累加器
1
1
MAS Smem,src
src=src—T*Smem
从累加器中减去T寄存器值与操作数的乘积
1
1
MASR Xmem,Ymem,src[,dst]
dst=rnd(src—Xmem*Ymem),T=Xmem
从累加器中减去两操作数的乘积(带舍入)
1
1
MAS Xmem,Ymem,src[,dst]
dst=src—Xmem*Ymem,T=Xmem
从源累加器中减去两操作数的乘积
1
1
MASR Smem,src
src=rnd(src—T*Smem)
从累加器中减去T寄存器值与操作数的乘积(带舍入)
1
1
MASA Smem[,B]
B=B—Smem*A(32—16),T=Smem
从累加器B中减去操作数与累加器A高位的乘积
1
1
MASA T,src[,dst]
dst=src—T*A(32—16)
从源累加器中减去T寄存器值与累加器A高位的乘积
1
1
MASAR T,src[,dst]
dst=rnd(src—T*A(32—16))
从源累加器中减去T寄存器值与累加器A高位的乘积(带舍入)
1
1
SQURA Smem,src
src=src+Smem*Smem,T=Smem
操作数平方并累加
1
1
SQURS Smem,src
src=src—Smem*Smem,T=Smem
从累加器中减去操作数的平方
1
1

5. 双精度(32位操作数)指令



字数
周期
DADD Lmem,src[,dst]
If C16=0
dst=Lmem+src
If C16=1
dst(39—16)=Lmem(31—16)+src(31—16)
dst(15—0)=Lmem(15—0)+src(15—0)
双精度/双16位数加到累加器
1
1
DADST Lmem,dst
If C16=0
dst=Lmem+(T<<16+T)
If C16=1
dst(39—16)=Lmem(31—16)+T
dst(15—0)=Lmem(15—0)—T
双精度/双16位数与T寄存器值相加/减
1
1
DRSUB Lmem,src
If C16=0
src=Lmem—src
If C16=1
src(39—16)=Lmem(31—16)—src(31—16)
src(15—0)=Lmem(15—0)—src(15—0)
双精度/双16位数中减去累加器值
1
1
DSADT Lmem,dst
If C16=0
dst=Lmem—(T<<16+T)
If C16=1
dst(39—16)=Lmem(31—16)—T
dst(15—0)=Lmem(15—0)+T
长操作数与T寄存器值相加/减
1
1
DSUB Lmem,src
If C16=0
src=src—Lmem
If C16=1
src(39—16)=src(31—16)—Lmem(31—16)
src(15—0)=src(15—0)—Lmem(15—0)
从累加器中减去双精度/双16位数
1
1
DSUBT Lmem,dst
If C16=0
dst=Lmem—(T<<16+T)
If C16=1
dst(39—16)=Lmem(31—16)—T
dst(15—0)=Lmem(15—0)—T
从长操作数中减去T寄存器值
1
1

6. 专用指令



字数
周期
ABDST Xmem,Ymem
B=B+|A(32—16)|,A=(Xmem—Ymem)<<16
绝对距离
1
1
ABS src[,dst]
dst=|src|
累加器取绝对值
1
1
CMPL src[,dst]
dst=src(———)
累加器取反
1
1
DELAY Smem
(Smem+1)=Smem
存储器单元延迟
1
1
EXP src
T=number of sign bits(src)—8
求累加器的指数
1
1
FIRS Xmem,Ymem,pmad
B=B+A*pmad,A=(Xmem+Ymem)<<16
对称FIR滤波
2
3
LMS Xmem,Ymem
B=B+Xmem*Ymem,A=(A+Xmem<<16)+215
求最小均方值
1
1
MAX dst
dst=max(A,B)
求累加器(A,B)最大值
1
1
MIN dst
dst=min(A,B)
求累加器(A,B)最小值
1
1
NEG src[,dst]
dst=-src
累加器变负
1
1
NORM src[,dst]
dst=src<<TS,dst=norm(src,TS)
归一化
1
1
POLY Smem
B=Smem<<16,A=rnd(A*T+B)
求多项式的值
1
1
RND src[,dst]
dst=src+215
累加器舍入运算
1
1
SAT src
saturate(src)
累加器饱和运算
1
1
SQDST Xmem,Ymem
B=B+A(32—16)*A(32—16),A=(Xmem—Ymem)<<16
求距离的平方
1
1

二、逻辑运算指令
1. 与逻辑运算指令



字数
周期
AND Smem,src
src=src&Smem
操作数和累加器相与
1
1
AND #lk[,SHFT],src[,dst]
dst=src&#lk<<SHFT
长立即数移位后和累加器相与
2
2
AND #lk,16,src[,dst]
dst=src&#lk<<16
长立即数左移16位后和累加器相与
2
2
AND src[,SHIFT][,dst]
dst=dst&src<<SHIFT
源累加器移位后和目的累加器相与
1
1
ANDM #lk,Smem
Smem=Smem&#lk
操作数和长立即数相与
2
2

2. 或逻辑运算指令



字数
周期
OR Smem
src=src|Smem
操作数和累加器相或
l
1
OR #lk[,SHFT],src[,dst]
dst=src|#lk<<SHFT
长立即数移位后和累加器相或
2
2
OR #lk,16,src[,dst]
dst=src|#lk<<16
长立即数左移16位后和累加器相或
2
2
OR src[,SHIFT][,dst]
dst=dst|src<<SHIFT
源累加器移位后和目的累加器相或
1
1
ORM #lk,Smem
Smem=Smem|#lk
操作数和长立即数相或
2
2

3. 异或逻辑运算指令



字数
周期
XOR Smem,src
src=src∧Smem
操作数和累加器相异或
1
1
XOR #lk,[,SHFT],src[,dst]
dst=src∧#lk<<SHFT
长立即数移位后和累加器相异或
2
2
XOR #lk,16,src[,dst]
dst=src∧#lk<<16
长立即数左移16位后和累加器相异或
2
2
XOR src[,SHIFT][,dst]
dst=dst∧src<<SHIFT
源累加器移位后和目的累加器相异或
1
1
XORM #lk,Smem
Smem=Smem∧#lk
操作数和长立即数相异或
2
2

4. 移位指令



字数
周期
ROL src
Rotate left with carry in
累加器经进位位循环左移
1
1
ROLTC src
Rotate left with TC in
累加器经TC位循环左移
1
1
ROR src
Rotate right with carry in
累加器经进位位循环右移
1
1
SFTA src,SHIFT[,dst]
dst=src<<SHIFT{arithmetic shift}
累加器算术移位
1
1
SFTC src
if src(31)=src(30)then src=src<<1
累加器条件移位
1
1
SFTL src,SHIFT[,dst]
dst=src<<SHIFT{logical shift}
累加器逻辑移位
1
1

5. 测试指令



字数
周期
BIT Xmem,BITC
TC=Xmem(15—BITC)
测试指定位
1
l
BITF Smem,#lk
TC=(Smem&#lk)
测试由立即数规定的位域
2
2
BITT Smem
TC=Smem(15—T(3—O))
测试由T寄存器指定的位
1
1
CMPM Smem,#lk
TC=(Smem==#lk)
存储单元与长立即数比较
2
2
CMPR CC,ARx
Compare ARx with AR0
辅助寄存器ARx与ARO比较
1
1

三、程序控制指令
1. 分支转换指令



字数
周期
B[D] pmad
PC=pmad(15—0)
无条件分支转移
2
4/[2※]
BACC[D] src
PC=src(15—0)
按累加器规定的地址转移
1
6/[4※]
BANZ[D] pmad,Sind
if(Sind≠0) then PC=pmad(15—0)
辅助寄存器不为O就转移
2
4?/2§/[2※]
BC[D] pmad,cond[,cond[,cond]]
if(cond(s)) then PC=pmad(15—0)
条件分支转移
2
5?/3§/[3※]
FB[D] extpmad
PC=pmad(15—0),XPC=pmad(22—16)
无条件远程分支转移
2
4/[2※]
FBACC[D] src
PC=src(15—0),XPC=src(22—16)
按累加器规定的地址远程分支转移
1
6/[4※]

2. 调用指令



字数
周期
CALA[D] src
——SP=PC,PC=src(15—0)
按累加器规定的地址调用子程序
1
6/[4※]
CALL[D] pmad
——SP=PC,PC=pmad(15—0)
无条件调用子程序
2
4/[2§]
CC[D] pmad,cond[,cond[,cond]]
if(cond(s))then——SP=PC,PC=pmad(15—0)
有条件调用子程序
2
5?/3§/[3※]
FCALA[D] src
——SP=PC,——SP=XPC,PC=src(15—0),XPC=src(22—16)
按累加器规定的地址远程调用子程序
1
6/[4※]
FCALL[D] extpmad
——SP=PC,——SP=XPC,PC=pmad(15—0),XPC=pmad(22—16)
无条件远程调用子程序
2
4[2※]

3. 中断指令



字数
周期
INTR K
——SP=PC,PC=IPTR(15—7)+K<<2,INTM=1
不可屏蔽的软件中断,关闭其他可屏蔽中断
1
3
TRAP K
——SP=PC,PC=IPTR(15—7)+K<<2
不可屏蔽的软件中断,不影响INTM位
1
3

4. 返回指令



字数

FRET[D]
XPC=SP++,PC=SP++
远程返回
1
6/[4※]
FRETE[D]
XPC=SP++,PC=SP++,INTM=O
开中断,从远程中断返回
1
6/[4※]
RC[D] cond[,cond[,cond]]
if(cond(s)) then PC=SP++
条件返回
1
5?3§/[3※]
RET[D]
PC=SP++
返回
1
5/[3※]
RETE[D]
PC=SP++,INTM=O
开中断,从中断返回
1
5/[3※]
RETF[D]
PC=RTN,SP++,INTM=O
开中断,从中断快速返回
1
3/[1※]

5. 重复指令



字数

RPT Smem
Repeat single,RC=Smem
重复执行下条指令(Smem)+1次
1
1
RPT #K
Repeat single,RC=#K
重复执行下条指令k十1次
1
1
RPT #lk
Repeat single,RC=#lk
重复执行下条指令#lk+1次
2
2
RPTB[D] pmad
Repeat block,RSA=PC+2[4#],REA=pmad—1
块重复指令
2
4/[2※]
RPTZ dst,#lk
Repeat single,RC=#lk,dst=O
重复执行下条指令,累加器清O
2
2

6. 堆栈管理指令



字数
周期
FRAME K
SP=SP+K,-128≤k≤127
堆栈指针偏移一个立即数值
1
1
POPD Smem
Smem=SP++
将数据从栈顶弹出至数据存储器
1
1
POPM MMR
MMR=SP++
将数据从栈顶弹出至MMR
1
1
PSHD Smem
——SP=Smem
将数据压人堆栈
1
1
PSHM MMR
——SP=MMR
将MMR压人堆栈
l
1

7. 其他程序控制指令




字数
周期
IDLE K
idle(K),1≤k≤3
保持空转状态,直到中断发生
1
4
MAR Smem
If CMPT=0,then modify ARx,
ARP is unchanged
If CMPT=1 and ARx≠AR0,then modify ARx,
ARP=x
If CMPT=1 and ARx=AR0,then modify AR(ARP),
ARP is unchanged
修改辅助寄存器
1
1
NOP
no operation
空操作
1
1
RESET
software reset
软件复位
1
3
RSBX N,SBIT
STN(SBIT)=0
状态寄存器位复位
1
1
SSBX N,SBIT
STN(SBIT)=1
状态寄存器位置位
1
1
XC n,cond[,cond[,cond]]
If(cond(s))then execute the next n instructions;n=1or2
有条件执行
1
1
注:?条件“真”,§条件“假”,※延迟指令。

四、加载和存储指令
1. 加载指令



字数
周期
DLD Lmem,dst
dst=Lmem
双精度/双16位长字加载累加器
1
1
LD Smem,dst
dst=Smem
将操作数加载到累加器
1
1
LD Smem,TS,dst
dst=Smem<<TS
操作数按TREG(5~0)移位后加载到累加器
1
1
LD Smem,16,dst
dst=Smem<<16
操作数左移16位后加载累加器
1
1
LD Smem[,SHIFT],dst
dst=Smem<<SHIFT
操作数移位后加载累加器
2
2
LD Xmem,SHFT,dst
dst=Xmem<<SHFT
操作数移位后加载累加器
1
1
LD #K,dst
dst=#K
短立即数加载累加器
1
1
LD #lk[,SHFT],dst
dst=#lk<<SHFT
长立即数移位后加载累加器
2
2
LD #lk,16,dst
dst=#lk<<16
长立即数左移16位后加载累加器
2
2
LD src,ASM[,dst]
dst=src<<ASM
源累加器按ASM移位后加载目的累加器
1
1
LD src[,SHIFT][,dst]
dst=src<<SHIFT
源累加器移位后加载目的累加器
1
1
LD Smem,T
T=Smem
操作数加载T寄存器
1
1
LD Smem,DP
DP=Smem(8—0)
9位操作数加载DP
1
3
LD #k9,DP
DP=#k9
9位立即数加载ARP
1
1
LD #k5,ASM
ASM=#k5
5位立即数加载ASM
1
1
LD #k3,ARP
ARP=#k3
3位立即数加载ARP
1
1
LD Smem,ASM
ASM=Smem(4—O)
5位操作数加载ASM
1
1
LDM MMR,dst
dst=MMR
将MMR加载到累加器
1
1
LDR Smem,dst
dst(31—16)=rnd(Smem)
操作数舍入加载累加器高位
1
1
LDU Smem,dst
dst=uns(Smem)
无符号操作数加载累加器
1
1
LTD Smem
T=Smem,(Smem+1)=Smem
操作数加载T寄存器并延迟
1
1

2. 存储指令



字数
周期
DST src,Lmem
Lmem=src
累加器值存到长字单元中
1
2
ST T,Smem
Smem=T
存储T寄存器值
1
1
ST TRN,Smem
Smem=TRN
存储TRN寄存器值
1
1
ST #lk,Smem
Smem=#lk
存储长立即数
2
2
STH src,Smem
Smem=src(31—16)
存储累加器高位
1
1
STH src,ASM,Smem
Smem=src(31—16)<<(ASM)
累加器高位按ASM移位后存储
1
1
STH src,SHFT,Xmem
Xmem=src(31—16)<<(SHFT)
累加器高位移位后存储
1
1
STH src[,SHIFT],Smem
Smem=src(31—16)<<(SHIFT)
累加器高位移位后存储
2
2
STL src,Smem
Smem=src(15—0)
存储累加器低位
1
1
STL src,ASM,Smem
Smem=src(15—0)<<ASM
累加器低位按ASM移位后存储
1
1
STL src,SHFT,Xmem
Xmem=src(15—0)<<SHFT
累加器低位移位后存储
1
1
STL src[,SHIFT],Smem
Smem=src(15—0)<<SHIFT
累加器低位移位后存储
2
2
STLM src,MMR
MMR=src(15—0)
累加器低位存到MMR
1
1
STM #lk,MMR
MMR=#lk
长立即数存到MMR
2
2

3. 条件存储指令



字数
周期
CMPS src,Smem
If src(31—16)>src(15—0)
then Smem=src(31—16)
If src(31—16)≤src(15—0)
then Smem=src(15—0)
比较选择并存储最大值
1
1
SACCD src,Xmem,cond
If(cond) Xmem=src<<(ASM—16)
有条件存储累加器值
1
1
SRCCD Xmem,cond
If(cond) Xmem=BRC
有条件存储块重复计数器
1
1
STRCD Xmem,cond
If(cond) Xmem=T
有条件存储T寄存器值
1
1

4. 并行加载和存储指令



字数
周期
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行加载累加器
1
1
||LD Xmem,dst
||dst=Xmem<<16
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行加载T寄存器
1
1
||LD Xmem,T
||T=Xmem

5. 并行加载和乘法指令



字数
周期
LD Xmem,dst
dst=Xmem<<16
加载累加器并行乘法累加运算
1
1
||MAC Ymem,dst_
||dst_=dst_+T*Ymem
LD Xmem,dst
dst=Xmem<<16
加载累加器并行乘法累加运算(带舍入)
1
1
||MACR Ymem,dst_
||dst_=rnd(dst_+T*Ymem)
LD Xmem,dst
dst=Xmem<<16
加载累加器并行乘法减法运算
1
1
||MAS Ymem,dst_
||dst_=dst_—T*Ymem
LD Xmem,dst
dst=Xmem<<16
加载累加器并行乘法减法运算(带舍入)
1
1
||MASR Ymem,dst_
||dst_=rnd(dst_—T*Ymem)

6. 并行存储和加 / 减法指令



字数
周期
ST src,Ymem
||ADD Xmem,dst
Ymem=src<<(ASM—16)
||dst=dst_+Xmem<<16
存储累加器值并行加法运算
1
1
ST src,Ymem
||SUB Xmem,dst
Ymem=src<<(ASM—16)
||dst=(Xmem<<16)—dst_
存储累加器值并行减法运算
1
1

7. 并行存储和乘法指令



字数
周期
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行乘法累加运算
1
1
||MAC Xmem,dst
||dst=dst+T*Xmem
ST src,Ymem
||MACR Xmem,dst
Ymem=src<<(ASM—16)
||dst=rnd(dst+T*Xmem)
存储累加器并行乘法累加运算(带舍入)
1
1
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行乘法减法运算
1
1
||MAS Xmem,dst
||dst=dst—T*Xmem
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行乘法减法运算(带舍入)
1
1
||MASR Xmem,dst
||dst=rnd(dst—T*Xmem)
ST src,Ymem
Ymem=src<<(ASM—16)
存储累加器并行乘法运算
1
1
||MPY Xmem,dst
||dst=T*Xmem

8. 其他加载和存储指令



字数
周期
MVDD Xmem,Ymem
Ymem=Xmem
数据存储器内部传送数据
1
1
MVDK Smem,dmad
dmad=Smem
数据存储器内部指定地址传送数据
2
2
MVDM dmad,MMR
MMR=dmad
数据存储器向MMR传送数据
2
2
MVDP Smem,pmad
pmad=Smem
数据存储器向程序存储器传送数据
2
4
MVKD dmad,Smem
Smem=dmad
数据存储器内部指定地址传送数据
2
2
MVMD MMR,dmad
dmad=MMR
MMR向指定地址传送数据
2
2
MVMM MMRx,MMRy
MMRy=MMRx
MMRx向MMRy传送数据
1
1
MVPD pmad,Smem
Smem=pmad
程序存储器向数据存储器传送数据
2
3
PORTR PA,Smem
Smem=PA
从PA口读入数据
2
2
PORTW Smem,PA
PA=Smem
向PA口输出数据
2
2
READA Smem
Smem=Pmem(A)
按累加器A寻址读程序存储器并存入数据存储器
1
5
WRITA Smem
Pmem(A)=Smem
将数据按累加器A寻址写入程序存储器
1
5






我的更多文章

下载客户端阅读体验更佳

APP专享