TMSLF的寻址方式.ppt

上传人:sh****n 文档编号:6670046 上传时间:2020-03-02 格式:PPT 页数:75 大小:823.55KB
返回 下载 相关 举报
TMSLF的寻址方式.ppt_第1页
第1页 / 共75页
TMSLF的寻址方式.ppt_第2页
第2页 / 共75页
TMSLF的寻址方式.ppt_第3页
第3页 / 共75页
点击查看更多>>
资源描述
第三章寻址方式和指令系统 本章基本要求1 熟悉DSP汇编语言指令2 能编写简单应用程序3 了解完整应用程序的结构 3 1寻址方式 3种基本寻址方式 立即寻址方式 直接寻址方式 间接寻址方式 3 1 1立即寻址方式 指令中包含该指令要操作的常数 1 短立即寻址指定8 9 13位的常数作为操作数 2 长立即寻址指定16位的常数作为操作数 例1 短立即寻址RPT 7 将RPT后面的那条指令执行8次 指令机器代码为 操作码操作数 例2 长立即寻址LACC 0FFF 3 将0FFFH左移3位后与累加器内容相加 指令机器代码为 指令操作码左移位数 0000111111111111 3 1 2直接寻址方式状态寄存器ST0 80 数据页指针 直接寻址模式下的数据存储器地址由数据页指针DP与偏移地址构成 1513 3 1 2直接寻址方式 数据存储器 在使用直接寻址时 必须确保正确的数据页 DP值保存在ST0中 可以通过LDP XXHXX 0 511或LST指令对DP赋值 数据页面指针 DP 指令寄存器 IR 9位 8MSB 页面 9MSB 偏移量 7LSB 0 7LSB 16位地址的形成 使用直接寻址的方法 1 设置数据页 LDP XX 2 指明偏移量 采用直接寻址时 不必每条指令前面都要设置数据页 如果一段代码的所有直接寻址指令都访问同一个数据页 则只需在该段代码的最前面装载一次DP值即可 8MSB 0 7LSB 操作码 直接寻址 偏移地址 数据页面指针DP 4 000000100 0010 0010 0 0001001 000000100 0001001 指令寄存器 IR ADD的操作码 移5位直接寻址 LDP 4ADD9H 5 0209 数据页面指针DP 500 111110100 01100000 0 0001001 111110100 0001001 指令寄存器 IR ADD的操作码 移5位直接寻址 LDP 500ADDC9H FB09 LDP 0HLACC64HADD50HLDP 6HSUB2H 数据存储器空间64H内的值与数据存储器空间50H内的值相加再减去数据存储器空间302内的值 3 1 3间接寻址方式使用AR0 AR7作为辅助寄存器 系统用当前辅助寄存器 当前AR 的内容作为操作数的地址 状态寄存器ST0 3 1 3间接寻址方式使用AR0 AR7 1 当前辅助寄存器2 间接寻址选项 1 不增不减 2 增1 减1 3 增加 减少一个变址量 AR0 4 按逆向进位方式增加 减少一个编址量 间接寻址操作数 158764320 七种选项 重定位指示 下一辅助寄存器指针 操作码及左移位数 AR0赋值为FFT长度的一半N 2 4 AR1中存放位反转的基地址 例如AR1 0200H 重复执行输入指令N 8次 使数据以N为8的倒序方式排列 即RPT7IN BR0 PA0 将PA0口顺序输入的数据以位反转的地址存储 则依次由AR1产生的地址分别为0200H0204H0202H0206H0201H0205H0203H0207H 例6ADD 8 0002h 0002h 指令执行前 指令执行后 数据存储器 数据存储器 302h ACC C ACC 0 C 2h 0202h 302h 302 3 3 302 ARP AR3 例7ADD 8 AR4 0002h 0002h 指令执行前 指令执行后 数据存储器 数据存储器 302h ACC C ACC 0 C 2h 0202h 302h 302 3 4 303 ARP AR3 例8ADD 8 0002h 0002h 指令执行前 指令执行后 数据存储器 数据存储器 302h ACC C ACC 0 C 2h 0202h 302h 302h 3 3 301h ARP AR3 例9ADD 0 8 0002h 0002h 指令执行前 指令执行后 数据存储器 数据存储器 0302h ACC C ACC 0 C 2h 0202h 0302h 0302h 3 3 0306h ARP AR3 0004h 0004h AR0 3 2指令集 3 2 1累加器 算术和逻辑指令1 ABS累加器内容取绝对值2 ADD1 1 DP 6 1h 1h 指令执行前 指令执行后 数据存储器 数据存储器 301h ACC C ACC 0 C 2h 4h 301h 相加有进位则1 C 否则C清零 2h 2h 指令执行前 指令执行后 数据存储器 数据存储器 302h ACC C ACC 0 C 2h 04h 302h 302 4 0 303 ARP AR4 ADD 0 AR0 将当前辅助寄存器所指向的单元的内容与累加器内容相加 并指定下一辅助寄存器为AR0 ffffh ffffh 指令执行前 指令执行后 数据存储器 数据存储器 302h ACC C ACC 0 C 7fff0000h 7fffffffh 302h 302h 0 0 302h ARP AR0 3 ADDC带进位位加至累加器 ACC 数据存储器地址 C ACC 4 ADDS抑制符号扩展加至累加器ADDS 0FF94H 0FF94h 指令执行前 指令执行后 数据存储器 数据存储器 TREG ACC C ACC 0 C 0F715h F7A5h 09h 09h 027FH 5 ADDT按TREG寄存器内容移位后加至累加器ADDT127 DP 4 SXM 0 027FH TREG 0FF94H 0FF94h 指令执行前 指令执行后 数据存储器 数据存储器 TREG ACC C ACC 0 C 0F715h 0F7A5h 90h 90h 027FH 练习 ADDS AR4 027FH TREG 027FH 027Eh AR0 0 4 ARP ARP AR0 6 AND和累加器逻辑 与 1 AND 2 LDP 1AND163 AND 00FFH 47 CMPL累加器求反 补 01h 01h 指令执行前 指令执行后 数据存储器 数据存储器 406h ACC C ACC 0 C 12345678h 10h 406h 8 LACC数据左移后装入累加器LACC6 4 DP 8 SXM 0 LACC 4LACC 1234H 2 00ffh 00FFh 指令执行前 指令执行后 数据存储器 数据存储器 401h ACC C ACC 0 C 7FFFFFFFh 0FFh 401h 401h 0 4 400h ARP AR0 9 LACL装载累加器低位并清累加器高位LACL AR4 10 NEG累加器求负11 NORM规格化累加器 14h 14h 指令执行前 指令执行后 数据存储器 数据存储器 TREG ACC C ACC 0 C 98F7EC83h 13760h 301h 1376h 1376h 301h 12 LACT按TREG规定的移位后装入累加器LACT1 DP 6 TREG 6 ARP 6 ARP 1111h 1111h 指令执行前 指令执行后 数据存储器 数据存储器 ACC C 0 C 222h 1333h AR1 301h 301h AR1 13 OR与累加器逻辑 或 OR AR0 301h ARP 1 301h 0 ARP 14 ROL累加器逻辑循环左移 指令执行前 指令执行后 B0001234H 60002468H ACC 0 ACC 1 15 ROR累加器逻辑循环右移 C 16 SACH移位并存储累加器高位SACH 0 AR2 0h 0420h 指令执行前 指令执行后 数据存储器 数据存储器 ACC C ACC 0 C 4208001h 4208001h AR1 301h 302h AR1 301h ARP 1 301h 2 ARP 17 SACL移位并存储累加器低位 18 SFL累加器算术左移 19 SFR累加器算术右移 B0001234H ACC 0 C 0 LSB MSB B0001234H ACC 0 C 5800091AH ACC 0 C B0001234H ACC 0 D800091AH ACC 0 SXM 1 SXM 0 20SUB从累加器减21SUBB带借位从累加器减22SUBS抑制符号扩展从累加器减23SUBT按TREG指定的值进行移位后从累加器减 0E0E0h 0E0E0h 指令执行前 指令执行后 数据存储器 数据存储器 ACC C ACC C 107777h 0E0E08000h AR7 0FF00h FEFFh AR7 24 XOR与累加器逻辑 异或 25 ZALR累加器低位清零并四舍五入装载累加器高位ZALR AR4 0FF00h ARP 7 0FF00h 4 ARP 26 ADRK短立即数加至当前辅助寄存器ADRK 80H 假设ARP 5 27 BANZ辅助寄存器不等于零转移MAR AR0 ARP指向AR0LARAR1 3 AR1中装入3LARAR0 60h AR0中装入60LOOP ADD AR1BANZLOOP AR0 4321H AR5 43A1H 指令执行后 C 28 CMPR比较当前辅助寄存器和AR0 并把比较结果放在ST1的TC位CMPRCMCM 00测试当前AR是否等于AR0CM 01测试当前AR是否小于AR0CM 10测试当前AR是否大于AR0CM 11测试当前AR是否不等于AR0如果条件满足 TC置1 7FFFh 7FFFh 指令执行前 指令执行后 TC 1h 0h 0FFFFh 0FFFFh AR0 CMPR2 ARP 4 AR4 4 32h 32h AR0 300h 32h 数据存储器 29LAR装载辅助寄存器LDP 6LARAR0 16 310H 30MAR修改辅助寄存器31SAR存储辅助寄存器 ARx 数据存储器 SARAR0 指令执行前 ARP 0 AR0 401H 401H 0H 指令执行后 ARP 0 AR0 402H 401H 401H LDP 6HLARAR0 0SARAR0 10H MAR AR1LARAR0 37FHLARAR1 300HLACL 0HLOOP1 SACL CPR00BCNDLOOP1 NTC 32SBRK从当前辅助寄存器减去短立即数33APACP寄存器加至累加器 F79Ch F79Ch 指令执行前 指令执行后 PREG 30079844h F79C9844h 200h 200h AR0 ARP 0 200h 6 数据存储器 34LPH装载乘积寄存器高位LPH AR6 35LT装载TREG寄存器36LTA装载TREG寄存器并累加前次乘积LAT AR5 62h 62h 指令执行前 指令执行后 TREG 3h 62h 324h 324h AR4 ARP 4 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 14h 37LTD装载TREG寄存器 累加前次乘积并移动数据LTD AR5 62h 62h 指令执行前 指令执行后 TREG 3h 62h 324h 324h AR4 ARP 4 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 14h 0h 62h 325h 38LTP装载TREG寄存器并存储PREG寄存器到累计器LTP AR5 数据空间地址 TREGShift PREG ACC 62h 62h 指令执行前 指令执行后 TREG 3h 62h 324h 324h AR2 ARP 2 324h 5 0Fh 0Fh PREG ACC C ACC 0 5h 0Fh 39LTS装载TREG寄存器并减去前次乘积 数据空间地址 TREGACC Shift PREG ACC40MAC乘且累加MAC0FF00H AR5 C 41MACD乘且累加并带数据移动SPM0CLRCCNFMACD0FF00H AR6 23h 23h 指令执行前 指令执行后 TREG 45h 23h 324h 324h AR2 ARP 2 324h 6 458972h 8Ch PREG ACC C ACC 0 723EC41h 76975B3h 数据存储器 程序存储器 FF00H 4h 4h 21h 23h 325H 42MPY乘43MPYA乘且累加前次乘积MPYA AR4 ACC shift PREG ACC TREG x 数据空间地址 PREG C 7h 7h 指令执行前 指令执行后 TREG 6h 6h 324h 324h AR3 ARP 3 324h 4 36h 2Ah PREG ACC C ACC 0 54h 8Ah 数据存储器 44MPYS乘且减去前次乘积45MPYU无符号乘法 46PAC将乘积寄存器装入累加器47SPAC从累加器减去PREG寄存器48SPH存储PREG高位49SPL存储PREG低位50SPM设置PREG移位方式51SQRA平方并累加前次乘积52SQRS平方并减去前次乘积 转移指令 53B无条件转移54BACC按累加器内容转移55BANZ当前辅助寄存器不等于零转移 当前寄存器内容缺省修改为减1 MAR AR0LARAR1 3HLARAR0 60HLOOP1 ADD AR1BANZLOOP1 AR0 转移指令 56BCND条件转移用于条件调用和返回的条件 使用多个条件 组1 最多可选两个条件 每个条件必须来自不同的类 A类或B类 不能从同一类中选择两个条件组2 最多可选3个条件 每一个条件必须来自不同的类 57CALA调用累加器低16位指定地址处的子程序58CALL无条件调用指令59CC条件转移指令60INTR软中断K 0 3161NMI不可屏蔽中断转移到程序存储器0024H处62RET子程序返回63RETC条件返回64TRAP软件陷阱中断转移到程序存储器0022处 C 控制指令 65BIT位测试 将数据的指定位复制到状态寄存器ST1的TC位位码值0123456789101112131415位位置1514131211109876543210LDP 6BIT0H 15测试300H处的最低有效位 66BITT测试TREG寄存器规定的位TREG四位LSB0123456789101112131415位位置1514131211109876543210假设TREG 1H数据存储器 300h 4DC8h 301h 0777hLDP 6HBITT00HBITT01H执行完后TC 67CLRC状态位清零68IDEL空闲直至中断发生LDP装载数据页指针 70LST装载状态寄存器LDP 0HLST 0 60H 2404h 2404h 指令执行前 指令执行后 ST0 6E00h 2604h 60h 05ECh 05ECh ST1 数据存储器 71NOP空操作72POP栈顶弹出至累加器的低位73POPD栈顶弹出至数据存储器74PUSH累加器低位进栈75PSHD数据存储器值进栈 压栈操作 堆栈 PUSH PSHDPOP POPD PSHD AR1 12h 指令执行前 指令执行后 ARP 0 1 1FFh 1FFh 1FFh AR0 数据存储器 2h 33h 78h 99h 42h 50h 0h 0h 堆栈 12h 12h 2h 33h 78h 99h 42h 50h 0h 76RPT重复执行下条指令RPT 177SETC78SPM设置PREG移位输出方式 79SST存储状态寄存器SST 0 96 2404h 6E00h ST0 6E00h 6E00h 60h 数据存储器 GISR SST 0 60HSST31 61HLDP 0HPUSHSARAR0 62H I O和存储器指令 80BLDD数据存储器到数据存储器的块传送LDP 6HBLDD 300H 20H 0h 0h 指令执行前 指令执行后 320h 0Fh 0h 300h 数据存储器 LARAR0 2HLARAR1 380HMAR AR1RPT 15BLDD 300 0 将300H 30F内的16个数存入380H 39FH内地址为偶数的空间中 81BLPD程序存储器到数据存储器的块传82DMOV在数据存储器内传送数据LDP 6DMOV8 43h 43h 指令执行前 指令执行后 309h 2h 43h 308h 数据存储器 83IN84OUT85SPLK存储长立即数值至数据存储器SPLK 1111H AR4 300h 301h 指令执行前 指令执行后 300h 02h 1111h AR0h 数据存储器 0 4 ARP 86TBLR读表LDP 4TBLR6 300h 301h 指令执行前 指令执行后 206h 75h 306h AR0h 数据存储器 23H 23H ACC 程序存储器 306h 306h 23h
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!