指令系统Word文档格式.docx

上传人:b****6 文档编号:18629674 上传时间:2022-12-29 格式:DOCX 页数:21 大小:506.21KB
下载 相关 举报
指令系统Word文档格式.docx_第1页
第1页 / 共21页
指令系统Word文档格式.docx_第2页
第2页 / 共21页
指令系统Word文档格式.docx_第3页
第3页 / 共21页
指令系统Word文档格式.docx_第4页
第4页 / 共21页
指令系统Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

指令系统Word文档格式.docx

《指令系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《指令系统Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

指令系统Word文档格式.docx

例MAR*,AR1;

选择AR1为当前辅助寄存器,ARP=1

LARAR1,#208h;

AR1=#208h

ADD*,8;

ACC=ACC+(208h)*28间接寻址

间接寻址类型:

*地址不变

*+AR=AR+1当前AR中的地址加1

*-AR=AR-1

*0+AR=AR+AR0

*0-AR=AR-AR0

*BR0+AR=B(AR+AR0)地址反向进位加,用于FFT

*BR0-AR=B(AR-AR0)

下一个辅助寄存器:

许多指令除了可以修改当前辅助寄存器的数值外,还可以指定下一个辅助寄存器,作为下一条指令的当前辅助寄存器。

例.MAR*,AR1;

AR1为当前AR,即ARP=1

LT*+,AR2;

T=(AR1),AR1=AR1+1,ARP=2

MPY*;

P=T*(AR2)=(AR1)*(AR2)

间接寻址举例

  ADD*,8

ADD*+,8,AR4

ADD*-,8

ADD*0+,8

ADD*0-,8

ADD*BR0+,8

ADD*BR0-,8

指令概述

C24X指令分类表:

86条

传送指令,算术操作,逻辑运算指令,分支转移指令

1)累加器、算术和逻辑操作指令,26条

2)辅助寄存器和DP操作指令,7条

3)T寄存器、P寄存器和乘操作指令,20条

4)跳转指令,12条

5)控制指令,13条

6)I/O及数据存储器操作指令,8条

7)

汇编指令格式:

[标号]指令(操作码)[操作数][;

注释]

1、累加器、算术、逻辑指令

 

2、辅助寄存器指令

3、T,P寄存器与乘法指令

4、分支转移指令

5、控制指令

6、I/O即存储器指令

指令中常用符号表

AR:

辅助寄存器ACC:

累加器

dma:

DM地址低7位DP:

9位数据页面指针

ind:

间接寻址方式#:

立即数

shift:

左移位数0-15PA:

16位口地址

shift2:

左移位数0-7pma:

16位程序地址

ARn:

指定的辅助寄存器cond:

条件指令的条件

():

存储单元内容[]:

可选项

汇编语言指令举例:

加法指令

例如,加法指令:

ADDdma[,shift];

ADDdma,16;

左移16位直接寻址

ADDind[,shift[,ARn]];

ADDind,16[,ARn];

左移16位间接寻址

ADD#k;

短立即寻址

ADD#lk[,shift];

长立即寻址

例.指令ADD*+,0,AR0

功能:

ACC=ACC+(AR),ARP=0

执行前

ARP=4

AR4=302H

DM:

(302H)=2

ACC=2

C=X

执行后

ARP=0

AR4=303H

ACC=4

C=0

汇编语言指令

(1)

(1)ABS累加器取绝对值

(2)ADD累加器加

(3)ADDC带进位累加器加

(4)ADDS抑制符号扩展的累加器加

(5)ADDT:

T寄存器指定移位次数的累加器加

(6)ADRK辅助寄存器加短立即数

(7)AND和累加器进行与操作

(8)APAC:

P加到ACC

(9)B无条件跳转

(10)BACC跳转到ACCL确定的地址

(11)BANZ辅助寄存器非0跳转

语法:

BANZpma[,ind[,ARn]]

例BANZPGM191,*-,AR0

汇编语言编程例1

将数据存储器60H-69H单元内容求和。

MAR*,AR0;

设AR0为当前AR

LARAR1,#09H;

10个单元,计数器

LARAR0,#60H;

初始单元AR0=#60H,地址指针

LACC#0;

和初值ACC=0

PGM191:

ADD*+,AR1;

累加,AR0+1,下一当前AR为AR1

BANZPGM191,AR0;

AR1≠0则循环,且AR1=AR1-1

下一当前AR为AR0

ACC=0+(60H)+(61H)+…+(69H)

汇编语言指令

(2)

(12)BCND无条件跳转

(13)BIT位测试

(14)BITT:

T寄存器指定测试

(15)BLDD数据块移动

(16)BLPD程序区到数据区的块移动

(17)CALA:

调用ACC指定的子程序

(18)CALL:

无条件调用子程序

(19)CC条件调用

(20)CLRC控制位清0

(21)CMPL:

ACC取反

(22)CMPR辅助寄存器AR与AR0比较

(23)DMOV数据移动

(24)IDLE等待中断

(25)IN从端口读入数据

BITT指令:

T寄存器指定位测试

语法:

1)BITTdma

2)BITTind[,ARn]

功能:

将DM单元中指定的位复制到状态寄存器ST1的TC位。

指定的位对应于15-T(3:

0)。

例BITT00H;

(DP=6)

执行后

(300H)=4DC8H0100DC8

T=1D(15-1)=D14=1

TC=1

执行前

(300H)=4DC8H

T=1

TC=0

BLDD指令:

数据块移动

1)BLDD#lk,dma

2)BLDD#lk,ind[,ARn]

3)BLDDdma,#lk

4)BLDDind,#lk[,Arn]

说明:

该指令实现DM到DM的块移动,第一个数指定源地址,第二个数指定目的地址。

一旦启动了流水线,它就成为单周期指令。

例子BLDD#300h,20h;

(DP=6)

执行前:

(300h)=0h(320h)=0fh

执行后:

(300h)=0h(320h)=0h

汇编语言指令(3)

(26)INTR软件中断

(27)LACC带移位的ACC装载

(28)LACL装载ACCL,ACCH=0

(29)LACT由T指定移位次数的ACC装载

(30)LAR:

LoadAR装载辅助寄存器

(31)LDP:

LoadDP装载DP

(32)LPH:

LoadPH

(33)LST:

LoadST

(34)LT:

LoadT

(35)LTA:

LoadTandAdd

(36)LTD装载T寄存器、累加前次乘积并移动

(37)LTP装载T寄存器并将P送到ACC

(38)LTS:

LoadTandSubtract

(39)MAC:

乘累加

MAC指令:

语法1)MACpma,dma

2)MACpma,ind[,ARn]

功能:

ACC=ACC+P,T=(DM),P=(PM)*(DM)=(PM)*T

例MAC0FF00H,08;

(DP=6,PM=00)

(308h)=23h

PM:

(FF00H)=4

T=23h

P=8CH

ACC=76975b3h

T=45h

P=458972h

ACC=723EC41h

MACD指令:

乘累加并移动数据

语法1)MACDpma,dma

2)MACDpma,ind[,ARn]

例MACD0FF00H,08;

ACC=ACC+P,T=(DM),P=(PM)*(DM),(DM+1)=(DM)

执行前执行后

(308h)=23hDM:

(309h)=18hDM:

(309h)=23h

(FF00H)=4PM:

T=45hT=23h

P=458972hP=8CH

ACC=723EC41hACC=76975b3h

汇编语言指令(4)

(40)MACD乘累加并移动数据

(41)MAR:

ModifyAR修改辅助寄存器

(42)MPY:

Multiply乘

(43)MPYA:

乘且累加前次积

(44)MPYS:

乘且减去前次积

(45)MPYU:

无符号乘

(46)NEG:

ACC取补码

(47)NMI:

NonMaskableInterrupt非屏蔽中断

(48)NOP:

NoOperation空操作

(49)NORM:

ACC规格化

(50)OR:

与ACC或运算

(51)OUT:

输出数据到端口

(52)PAC:

P送到ACC

(53)POP栈定内容弹出到ACCL

汇编语言指令(5)

(54)POPD:

POPtoDatamemory栈定内容弹出到数据存储器单元

(55)PSHD:

数据存储器单元压入堆栈

(56)PUSH:

ACCL压入堆栈

(57)RET:

子程序返回

(58)RETC:

条件返回

(59)ROL:

A循环左移

(60)ROR:

A循环右移

(61)RPT:

重复执行下一条指令

(62)SACH:

StoreACCH

(63)SACL:

StoreACCL

(64)SAR:

StoreAR

(65)SBRK:

AR减去短立即数

PSHD指令:

语法:

1)PSHDdma

2)PSHDind[,ARn]

堆栈依次向下移动一级,指定存储器单元的内容复制到栈顶。

堆栈底部的值丢失。

例子PSHD*,AR1

ARP=1

AR0=1FFH

(1FFH)=12H

硬件堆栈

12h

2h

33h

78h

99h

42h

50h

0h

ARP=0

POPD指令:

栈定内容弹出到存储器单元

1)POPDdma

2)POPDind[,ARn]

栈顶的内容复制到DM单元中。

堆栈值依次向上复制一级。

例子POPD20h;

(320H)=45H

16h

7h

42h

56h

37h

61h

61h

(320H)=82H

45h

16h

7h

33h

56h

37h

61h

汇编语言指令(6)

(66)SETC控制位置位

(67)SFL:

A左移

(68)SFR:

A右移

(69)SPAC:

A减P

(70)SPH:

StorePH

(71)SPL:

StorePL

(72)SPLK:

长立即数送到DM单元

(73)SPM:

设置移位模式PM

(74)SQRA:

乘方并累加前一次乘积

(75)SQRS:

乘方并减去前一次乘积

(76)SST:

StoreST

(77)SUB:

ACC减

(78)SUBB:

带借位的:

ACC减

(79)SUBC条件减

SPLK指令:

1)SPLK#lk,dma

2)SPLK#lk,ind[,ARn]

例子SPLK#1111H,*+,AR4

ARP=4

AR0=301H

(300H)=1111H

AR0=300H

(300H)=07H

条件减指令用于除法运算

语法格式:

SUBCdma

SUBCind[,ARn]

移位相减实现除法:

ACCL/(DM)=ACCL余数ACCH

例.RPT#15

SUBC*;

执行情况16次

A执行后

ARP=3

AR3=1000H

(1000H)=7

ACCH=2,ACCL=0009H

A执行前

ACCH=0,ACCL=41H

65/7=9余数2

汇编语言指令(7)

(80)SUBS:

抑制符号扩展的累加器减

(81)SUBT:

T确定移位的累加器减

(82)TBLR:

TableRead表读1)TBLRdma;

2)TBLRind[,ARN]说明:

将PM单元中的内容复制到指定的DM单元。

(83)TBLW:

TableWrite表写

(84)TRAP软件中断

(85)XOR与累加器进行异或操作

(86)ZALR:

ACCL=0,ACCH=8000H累加器低位字清0,高位字带舍入装载

汇编语言编程例2

查表程序

0≤x≤9,求y=x1/5,x=0,1,2,…,9,y值用Q14格式。

设x值在402H单元,查表y值送404H单元

LDP#8

LACC2;

(402H)→ACCx

ADD#TAB;

表首地址#TAB

TBLR4;

ACC→(404H)y

思考题与习题

1.C24xDSP有哪些寻址方式?

2.直接寻址方式中,数据存储单元的地址是如何形成的?

3.间接寻址方式中,数据存储单元的地址是如何形成的?

间接寻址方式有哪些类型?

4.C24xDSP有哪几种类型的指令?

5.编程将数据存储器300H-30AH单元内容求和。

6.试编写一简单查表程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1