共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150

Similar documents
<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

数据库系统概论

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式]

CH559指令周期.doc

2011-论文选集-2.cdr

( CCS ) CCS CCS CCS (FFT) (IIR) (FIR) 51 5 FIR..

第5章:汇编语言程序设计

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

DPJJX1.DOC

数据库系统概论

《米开朗琪罗传》


L15 MIPS Assembly


数据库系统概论

自 學 進 修 學 力 鑑 定 考 試 職 業 證 照 與 專 科 學 校 類 科 對 照 表 修 正 規 定 序 號 考 試 單 位 考 試 及 格 證 書 名 稱 適 用 等 級 類 別 科 別 考 1 試 律 師 甲 級 商 業 財 經 法 律 院 2 計 師 甲 級 商 業 計 事 務 3

DaoCiDi2003TC ct-P293L02-R

untitled

Microsoft PowerPoint sun-arm isa2.ppt [Compatibility Mode]

Microsoft Word - 1-3陳詠琳-近代..

01

Ps22Pdf

<4D F736F F D20D5D0B1EACEC4BCFEBCB0C7E5BDE0B7FECEF1BACFCDAC28C2C9CAA6B0E631A3A92E646F6378>

國立中山大學學位論文典藏.PDF

"#" " "" " " "# $ " %( )# #( %& ( " % " " # ) *# " # " $ " #(( " " "#+( % " % $ " & # " " $ $ " " $ % & " #$ % $ "& $ "" " ") # #( "( &( %+"(

89,,,,,,,,,,,,,,,,?,???,,,,,,,,,,,,,

!##$ %!!##$ & (!##$ %!!##$ &!##$!##(!##$! "

!!! #!!! $##%!!! $!!!! &!!!! (!! %!! )!!! *!!!!!!! #!!!!! $

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

幻灯片 1


2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为

<4D F736F F D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>


Microsoft Word - 9pinggb_A4.doc

Microsoft Word - 9pinggb_A4-f4.doc

理 论 探 索 事 业 单 位 改 革 的 五 点 思 考 余 路 [ 摘 要 ] 事 业 单 位 改 革 是 中 国 改 革 的 重 要 环 节, 其 影 响 力 和 难 度 不 亚 于 国 有 企 业 改 革 本 文 着 重 围 绕 推 进 事 业 单 位 改 革 应 考 虑 的 五 个 方 面

2深化教育教学改革、创新人才培养模式

Microsoft Word - 9pinggb_let.doc

实 习 上 下 点 表 格 解 释 和 相 关 纪 律 要 求 : 1 表 格 中 所 有 名 词 都 为 简 称, 包 括 医 院 名 称 四 年 级 五 年 级 各 专 业 名 称 等 所 有 时 间 都 为 学 生 装 好 行 李 出 发 时 间, 请 提 前 0 分 钟 将 行 李 运 到

简报158期.doc

Microsoft Word - 9pingb5_let.doc

退休權益.ppt [相容模式]

Microsoft Word - 1.《國文》試題評析.doc

$%%& ()*+, %&, %-&&%%,. $ %,, $,, & /$- 0(1 $%%& %& 234 %-%, 5&%6&633 & 3%%, 3-%, %643 -%%% :::; 7<9; %-%, 3$%$ :::;

# $# #!# # # # # # # %# # # &# # # # #! "

untitled

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

(譯本)

(CPIC) Cir_.indb

金 利 科 技 临 时 停 牌 凤 凰 光 学 重 要 事 项 未 公 告, 连 续 停 牌 安 源 煤 业 重 要 事 项 未 公 告, 连 续 停 牌 万 泽 股 份 临 时 停 牌 爱 康 科 技 重 大 事 项, 特 停

商 业 城 大 华 标 准 70 万 70 万 驰 宏 锌 锗 瑞 华 标 准 140 万 150 万 亚 星 锚 链 江 苏 公 证 天 业 标 准 80 万 80

金 圆 股 份 重 大 事 项, 特 停 长 城 影 视 临 时 停 牌 天 兴 仪 表 临 时 停 牌 商 赢 环 球 重 要 事 项 未 公 告, 连 续 停 牌 荣 安 地 产 临 时 停 牌 中 南 文 化

欢迎辞

金 陵 饭 店 中 兴 华 已 报 备 按 照 国 资 委 要 求 定 期 轮 换 天 衡 已 报 备 按 照 国 资 委 要 求 定 期 轮 换 *ST 中 富 中 喜 已 报 备 业 务 约 定 书 到 期 普

辉 丰 股 份 重 大 事 项, 特 停 南 方 轴 承 临 时 停 牌 德 力 股 份 临 时 停 牌 瑞 丰 光 电 临 时 停 牌 联 建 光 电 临 时 停 牌 卡 奴 迪 路 临 时 停 牌

日 涨 幅 偏 离 值 达 到 7% 的 前 五 只 证 券 : 温 氏 股 份 ( 代 码 ) 涨 幅 偏 离 值 :11.68% 成 交 量 :1752 万 股 成 交 金 额 : 万 元 机 构 专 用 机 构 专 用

上市公司股东大会投票信息公告( )

东 华 能 源 江 苏 苏 亚 金 诚 已 报 备 因 地 域 及 审 计 时 间 安 排 等 原 因 中 兴 华 已 报 备 客 户 重 新 选 聘 会 计 师 事 务 所 亿 帆 鑫 富 立 信 已 报 备 客

昆 明 机 床 瑞 华 已 报 备 前 任 服 务 年 限 较 长 毕 马 威 华 振 已 报 备 未 与 客 户 未 就 2015 年 审 计 收 费 达 成 一 致 意 见 中 国 核 电 天 健 已 报 备 定

光 一 科 技 重 大 事 项, 特 停 茂 业 商 业 重 要 事 项 未 公 告, 连 续 停 牌 浙 富 控 股 重 大 事 项, 特 停 键 桥 通 讯 重 大 事 项, 特 停 黑 牛 食 品 重 大 事 项, 特 停

Transcription:

DSP 原理与应用教程 ( 张卫宁著 ) 课后习题答案第 3 章 (2014 年 10 月整理 刘忠国 ) 第三章习题答案 : 作业 :3.2, 3.6, 3.7,3.8, 3.11, 3.17, 3.19,3.21 3.1. TMS320C54x 的数据空间寻址方式各有什么特点? 应该应用在什么场合? ( 教材涉及特点较少 ) 答 :TMS320C54x 有 7 种基本的数据寻址方式 : 立即寻址, 绝对寻址, 累加器寻址, 直接寻址, 间接寻址, 存储器映像寄存器寻址和堆栈寻址 1 立即寻址: 其特点是指令中包含有一个固定的立即数, 操作数在指令中, 因而运行较慢, 需要较多的存储空间 立即寻址只能用于源操作数, 做目标操作数无意义, 它用于对寄存器初始化 2 绝对寻址: 可以寻址任一数据存储器中操作数, 运行较慢, 需要较多的存储空间 它用于对寻址速度要求不高的场合 3 累加器寻址: 把累加器内容作为地址指向程序存储器单元 它用于在程序存储器和数据存储器之间传送数据 4 直接寻址: 指令中包含数据存储器的低 7 位和 DP 或 SP 结合形成 16 位数据存储器地址, 它寻址速度快, 用于对寻址速度要求高的场合 5 间接寻址: 利用辅助寄存器内容作为地址指针访问存储器, 可寻址 64 千字 16 位字数据存储空间中任何一个单元 它用于按固定步长寻址的场合 6 堆栈寻址: 用于中断或子程序调用时, 将数据保存或从堆栈中弹出 7 存储器映像寄存器(MMR) 寻址, 是基地址为零的直接寻址, 寻址速度快, 它用于直接用 MMR 寄存器名快速访问数据存储器的 0 页 3.2. 直接寻址有两种方式, 它们是如何控制的? 当 SP =0100h,DP=2, 偏移地址为 50h 时, 分别寻址的是哪个存储空间的哪个地址单元? 答 :(1) 直接寻址有 DP 和 SP 两种方式 当 CPL=0 时, 以数据页指针寄存器 DP 的 9 位为地址高 9 位, 以指令中的 7 位偏移地址 (dma) 为地址低 7 位,

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150h 单元 3.3. 试叙述循环寻址和位倒序寻址的特点和它们在数字信号处理算法中的作用 答 :1. 循环寻址特点 : 可帮助实现诸如卷积线性滤波相关等数字信号处理 的典型算法, 因为这些算法往往要设置一循环缓冲区, 在该区域内包含最新的数 据, 当新数据进来时, 就会覆盖最旧的数据 实现循环缓冲区的关键就是采用循 环寻址, 这个循环缓冲区可以看成是一个地址首尾相接的数据空间, 也可以看成 是一个滑动的窗口 它的地址指针可由低向高增值变化, 当增至最高地址时, 能 够自动返回最低地址 ; 或是将地址指针由高向低减量变化, 当减至最低地址时, 可自动返回最高地址 这样做, 可以节省存储空间, 并提高运算的速度 循环寻 址就是为了实现上述的应用而提供的一种寻址方式 位倒序寻址特点 : 位倒序 ( 反向 ) 寻址时 DSP 的一种特殊处理方式, 是专门 为快速傅里叶变换 FFT 而设计的, 利用它有效地提高 FFT 算法的运算速度 在 这种寻址方式中, 不是采用正常的从右向左运算并进位的方式, 而是由左向右进 行运算并产生进位 2. 循环寻址作用 : 是为实现诸如卷积线性滤波相关等数字信号处理的典型 算法, 而提供一种寻址方式, 可以节省存储空间, 并提高运算速度 位倒序寻址作用 : 是专门为快速傅里叶变换 FFT 而设计的, 利用它有效地提高 FFT 算法的运算速度 3.4. 堆栈寻址的作用是什么? 压栈和弹出操作是如何实现的? 答 : 堆栈寻址的作用 : 堆栈寻址用于进行数据或者 MMR 的入栈和出栈操作 DSP 在调用或中断响应时会自动将 PC 值送入堆栈保存 堆栈也可以用于数据的暂存和传递等 压栈和弹出操作的实现 :C54x 的堆栈是下拉式堆栈, 即入栈时地址值减小, 而出栈时地址值增加 堆栈指针是 16 位的存储器映像寄存器 SP, 它总是指向栈顶位置 执行压栈操作时, 先减小 SP 后再将数据压入堆栈, 而执行弹栈操作时, 则是先从堆栈弹出数据, 然后再增加 SP 的值

3.5. 绝对地址寻址有哪几种? 它们可以访问哪些地址空间? 各有什么特点? 答 : 绝对地址寻址有 4 种方式, 分别是 : 数据存储器 (dmad) 寻址, 程序存 储器 (pmad) 寻址,I/O 端口 (PA) 寻址和 *(lk) 寻址 dmad 寻址用于确定操作数存于数据存储单元的绝对地址, 通常用一个在程序 的初始化中指定的地址标号或符号来指明该数据存储器地址 pmad 寻址用于确 定程序存储器中的一个绝对地址, 通常用一个在程序的初始化中指定的地址标号 或符号来指明该程序存储器地址 PA 寻址是用一个符号或一个数字来确定外部 I/O 端口的地址 *(lk) 寻址是使用一个指定数据空间的地址来寻址数据存储器 中的任意地址, 该方式可用于所有支持但数据操作数 (Smem) 的指令 该类指 令不能与单循环指令 RPT RPTZ 配合使用 由于绝对地址的长度为 16 位, 因此, 该类指令至少为两个字长, 执行周期也 相对较长 3.6. 写出每条指令的操作注释, 并分别指出下列指令中源操作数和目标操作数的 寻址方式 答 : 指令 操作注释 源操作数寻址方式目标操作数寻址方式 1) ST #10, *AR1+ #10 (AR1); 立即寻址 间接寻址 AR1+1 AR1 2) STM #200h, AR5 #200 AR5; 立即寻址 存储器映像寄存器寻址 3) MVDK *AR2-, x1 ((AR2)) x1 AR2-1 AR2 间接寻址 绝对寻址 4) ADD @y, A y 地址低 7 位为偏移直接寻址 存储器映像寄存器寻址 量进行直接寻址的单元数值与 A 累加后 A 5) PSHM AR7 AR7 内容入栈 存储器映像寄存器寻址堆栈寻址 6) POPD 20 弹栈到 dma 为 20 的堆栈寻址 直接寻址 直接寻址单元 7) MVKD 100h,*AR1 (100h) (AR1) 绝对寻址 间接寻址 8) MVMD AH,60h AH @60 存储器映像寄存器寻址直接寻址 9) WRITA 8 @8 (A(0-22)) 直接寻址 累加器寻址 10) ADD *AR3+, *AR4+, A (((AR3))+((AR4)) ) 间接寻址 <<16 A AR3+1 AR3; AR4+1 AR4 存储器映像寄存器寻址

3.7. 已知 (SP)=1000h, (T)=1234h, (AR6)=5678h, (ARl)=0100h 数据单元, 试画出执行下列指令后堆栈区 SP 内容及数据单元 0100h 的变化示意图 PSHM T PSHM AR6 POPD * AR1 答 : 指令执行指令前执行指令后 PSHM T PSHM AR6 POPD * AR1 (SP)=1000h; 堆栈区栈顶 1000h (SP)=0FFFh; 堆栈区栈顶 (0FFFh)=1234h (SP)=0FFEh; 堆栈区栈顶 (0FFEh)=5678h (SP)=0FFFh; 堆栈区栈顶 (0FFFh)=1234h (SP)=0FFEh; 堆栈区栈顶 (0FFEh)=5678h (SP)=0FFFh; 堆栈区栈顶 (0FFFh)=1234h (0100h)= 5678h 3.8. 假设采用 * AR2+0B 寻址, 若 (AR0)=01E0h,(AR2) = 1140h, 试写出寻 址地址 答 : AR0: 01E0h AR2: 1140h AR2: 1050h 0000 0001 1110 0000b 0001 0001 0100 0000b 0001 0000 0101 0000b + 3.9. 在数据存储器中开辟一段循环缓冲区, 缓冲区大小为 100, 采用 AR1 做地址指针, 设步长 Setp=4, 试写出缓冲区首地址和缓冲区长度寄存器的内容, 并简述该循环缓冲区的循环寻址工作原理 答 : 因为 2^7 > 100, 所以 N=7, 基地址 EFB 的低 7 位必须为 7 个 0, 所以缓冲区首地址可以为 1000h, 缓冲区长度寄存器 BK 为 100 在初始化编程中将 100 BK, 1000h AR1, 此时 index=0 当 index 变化到 index=96, 再做 index+step 就会使 index 等于 Bk 里的值 100, 因此应该进行 index=index+step-bk 的操作, 使得 index=0, 也就是使 AR1=1000h, 又回到首地

址的位置, 从而形成了循环寻址 3.10. 写出能够用单条指令给 Smem 清 0 的指令 答 :ANDM #0h, Smem;ST #0h, Smem;STM #0h, MMR; 3.11. 已知指令执行前 (A)=00 1234 5678h, 数据单元 00FFh~0103h 的内容都是 0000h, 分别写出指令执行前 (AR3)=0100h 和 (AR3)=0101h 时, 执行指令 DST A, *AR3+ 后的数据单元 00FFh~0103h 的内容 答 :(AR3)=0100h 时, 执行指令 DST A, *AR3+ 后数据单元 00FFh~0103h 的内容分别是 :0000h,1234h,5678h,0000h,0000h (AR3)=0101h 时, 执行指令 DST A, *AR3+ 后数据单元 00FFh~0103h 的内 容分别是 :0000h,5678h,1234h,0000h,0000h 3.12. 用哪些指令可以将累加器 A 的内容送入 B? 答 : 可以将累加器 A 的内容送入 B 的指令 : LD A,B; ADD #0,A,B; SUB #0,A,B; MAC #0,A,B; MAC Smem,#0,A,B; 3.13. 举例说明下列三条指令的区别是什么? 各应用在什么场合? LD Smem,dst LDR Smem,dst LDU Smem,dst 答 : 指令 LD Smem, dst 的功能是 :(Smem) dst, 将 Smem 装载到 dst 的 低 16 位, 会根据符号扩展位 SXM 的值决定是否进行符号扩展 用于符号数的 运算 指令 LDR Smem, dst 的功能是 :(Smem) <<16 +1 <<15 dst(31 16), 将 Smem 装载到 dst 的高 16 位, 低 16 位除 D15 位被置 1 外, 其他的位 (14 0), 都清 0 也会根据符号扩展位 SXM 的值决定是否进行符号扩展, 用于四舍五入的符号数 运算 指令 LDU Smem, dst 的功能是 :(Smem) dst(15 0);00 0000h dst(39 16) 即将 Smem 作为无符号数加载到累加器 dst 的低 16 位, 与符号扩展位 SXM 的值 无关, 用于无符号数的运算

3.14. 已知 (A)=00 0000 05F4h,xl 数据单元中内容为 0735h,C=l,TC =0, 写出 下列每条指令单独执行后的结果 (1) AND xl, A (2) OR xl, A (3) XOR xl, A (4) XOR A, A (5) ROR A (6) ROL A (7) ROLTC A ( 8 ) SFTC A 答 :(1) (A)=00 0000 0574h,C=l,TC =0 (2) (A)=00 0000 07F5h,C=l,TC =0 (3) (A)=00 0000 0281h,C=l,TC =0 (4) (A)=00 0000 0000h,C=l,TC =0 (5) (A)=80 0000 02FAh,C=l,TC =0 (6) (A)=00 0000 0BE9h,C=0,TC =0 (7) A)=00 0000 0BE8h,C=0,TC =0 ( 8 ) A)=00 0000 0BE8h,C=l,TC =0 3.15. 分别用乘法指令或者移位指令完成乘法 :y=20x 答 : 用乘法指令 :.bss x MPY *(x), #20, A 用移位指令 : 或者 :.bss x LD *(x), 2, A ADD *(x), A SFTA A.bss x LD *(x), 4, A ADD *(x), 2, A 3.16. 编程, 检测数据存储器 0060h 中的数据低 8 位是否全为 0, 若是, 则转入 ZERO, 否则, 转人 NZERO 答 :STM #0060h, AR4 NZERO: ZERO: BITF *AR4, 00FFh; BC NZERO, TC B ZERO

3.17. 将 AR5 的内容与 AR0 进行比较, 试用 CMPR 指令和转移条件实现下列功能 : (1) 若 (AR5) > (AR0), 则转人 BIGER ⑵ 若 (AR5) < (AR0), 则转入 LESS (3) 若 (AR5) = (AR0), 则转入 EQU ⑷ 若 (AR5) (AR0) 则转人 NEQU 答 :(1) CMPR 2, AR5 BC BIGER, TC (2) CMPR 1, AR5 BC LESS, TC (3) CMPR 0, AR5 BC EQU, TC (4) CMPR 3, AR5 BC NEQU, TC 3.18. 分别使用重复指令 RPTB 或 BANZ 编程, 将数据存储区 0060h~006Fh 内 容减 1 比较两种方法编程各占用多少字存放指令代码? 执行时间是多少? 答 :(1) 使用重复指令 RPTB 编程 : STM #0060h, AR4; RPT #15; ST #0FFh, *AR4+; STM #0060h, AR1; STM #0Fh, BRC; RPTB BLOCKEND; ADDM 0FFFFh,*AR1+; 0FFFFh 是 -1 的补码 BLOCKEND NOP NOP (2) 使用 BANZ 编程 : STM #0060h, AR4; RPT #15; ST #0FFh, *AR4+; STM #0060h, AR1; STM #-01h, AR3; STM #15, AR2; Loop: ADDM 0FFFFh,*AR1+; 0FFFFh 是 -1 的补码 BANZ Loop, *AR2-;

用减法指令和 BANZ 编程 : STM #0060h, AR1; STM #01h, AR3; STM #15, AR2; Loop: LD *AR1, A SUB AR3, A; STL A, *AR1+; BANZ Loop, *AR2-; 3.19. 编程, 将程序存储空间 l000h~107fh 的内容复制到数据存储空间从 0100h 幵始的地址空间中去 答 : STM #0100h, AR1; RPT #7Fh; MVPD l000h, *AR1+ 3.20. 已知 (65h)=50h, AR2 =70h, AR3 =60h, AR4 =80h, 程序段如下 : MVKD 65h, *AR2 MVDD AR2, *AR3 MVDM *AR3,AR4 运行该段程序后,(65h),(70h),*AR3 和 AR4 的值分别等于多少? 答 :(65h)=50h, (70h)=50h, *AR3 指向 (60h)=50h,AR4 =50h 3.21. 已知 (60h)=55h, (61h)=80h, 运行下列程序后,B 等于多少? LD 60h,16, A ADD 61h,A, B ADD #5h,4, B SUB 60h,2, B 答 : 运行以上程序后,B 等于 00 0054 FF7Ch LD 60h,16, A; (A)=00 0055 0000h ADD 61h,A, B; (B)=00 0055 0080h ADD #5h,4, B; (B)=00 0055 00D0h SUB 60h,2, B; (B)=00 0054 FF7Ch