已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
61 第四章汇编语言寻址方式及指令系统 格式 操作码 操作数 注释 共86条 数据传送类 39条 算术运算类 19条 加法4条 减法5条 乘法6条 平方2条 标准化2条 逻辑运算类 9条 分支转移类 19条 62 DSP寻址方式有三种 立即 直接 间接1 立即寻址 1 短立即寻址 单字指令 指令中给出8 9 13位常数作为操作数一般立即数前加 例 RPT 99 紧跟RPT后的指令执行100次 2 长立即寻址 双字指令 给出16位立即数例 ADD 16384 2 将16384左移2位后与累加器相加 结果送累加器 63 2 直接寻址 对数据存贮器的访问 64K空间分为512页 由STO的9位确定页面指针DP 由指令提供页内的128个字地址偏移量 占7位 由DP 偏移量 16位直接地址 复位时 系统对DP不进行初始化 由用户进行初始化 例 LDP 4 DP 4页地址为 200H 27FHADD9H 5 200H 9 的内容左移5位后与累加器相加 结果给累加器 64 3 间接寻址 由AR0 AR7作为间接寄存器 ARP的值 3位 作为当前辅助寄存器 ARAU 辅助寄存器算术单元 对辅助寄存器进行运算 修改不占用CPU时间 有4种操作 不增不减 增减 增减一个变址量 反向进位方式增减一个变量值 反向进位方式 由高位开始运算 进位 借位 给低位 适用于FFT算法 65 间接寻址七种操作方式 方式操作数符号不增不减 增1 减1 加变量值 0 减变数值 0 反向进位加变址量 BRO 反向进位减变址量 BRO 例ADD 8 AR4 当前AR内容所指数据存贮器单元的内容左移8位后与累加器相加 当前辅助寄存器内容加1 AR4为下一次当前AR AR内容所指数据存贮器地址内容加载暂时寄存器 TREG AR内容加载后AR内容 1 AR内容加载后AR内容 ARO的内容 AR加载后 反向进位方式将当前AR内容 ARO的内容 66 5 1数据传递类 39条 A 状态寄存器操作 2条 装ARP ARB DP及标志位 1 装状态寄存器ST0 ST1LST m dir 直接寻址 dir为常数形式的直接地址LST m ind ARn 间接寻址 ind为辅助寄存器名 m 0 选择ST0 m 1 选择ST1 操作不影响1NTM D9位 装ST0时 只影响ARP 不影响ARB装ST1时 即送ARB 也送ARP 间接寻址时 虽然指定下一个ARn 但被忽略 将ST0 1中的最高三位送ARP ARB 67 例 LST 1 00H DP 6 页地址 000000110B直接地址 00H存储器地址 300H执行前执行后300 E1BCH300 E1BCHST0 0406HST0 E406H 改变ARPD10 1ST1 09ECHST1 E1FCHD5 D8 1D2 D3 1ARP 0ARP 7例 LST 0 AR1 为当前寄存器的间接寻址执行前执行后ARP 4ARP 7 AR1忽略AR4 3FFAR4 3FFH3FF EE043FF EE04ST0 EE00ST0 EE04 ARP 7ST1 E7ECST1 E7EC 68 2 SST存贮状态寄存器SST m dir ST0 ST1数据存贮器 直接方式下无论DP多少 总被存放在0页 且不改变DP SST m ind ARn 间接寻址中可存放在任何一页 例 SST 1 ART前后ARP 0ARP 7AR0 300AR0 300300 0300 2580ST1 2580ST1 2580 例 SST 0 96 指向0页的96 60H 前后ST0 0A408ST0 0A408H60H 0A60H 0A408H 69 B 辅助寄存器操作 6条 1 装载ARLARARX dir dir ind K ARXLARARX ind ARn 无论SXM何值均不扩展符号LARARX KLARARX Lk例 LARAR4 执行中指定AR与ARP指定的AR相同 则不减量前后ARP 4ARP 4AR4 300AR4 32300 32300 32 70 例 LARAR0 16 DP 6前后310H 18H310H 18HAR0 6HAR0 18H 例 LARAR6 3FFFH前后AR6 0HAR6 3FFFH 2 存贮ARSARARX dir ARXdir ind SARARX ind ARn 执行中要修改 且要减 增量 例 SARAR0 前后ARP 0ARP 0AR0 401401 401401 0AR0 402 例 SARARO 30 DP 6 ARO 37HARO 37H31EH 18H31EH 37H 71 3 修改ARPMARdirMARind ARn 修改ARP 且原ARP复制到ARB例子 MAR AR1例MAR AR5 当前AR增量 并修改ARP前后前后ARP 0ARP 1ARP 1ARI 35ARB 7ARB 0ARI 34ARP 5ARB 0ARB 1 72 4 AR加ADRK K K为无符号数 运算与SXM OVM无关 结果与C OV无关 5 AR减SBRK K AR K AR6 AR比较测试CMPRCM CM 00测AR ARO01测试AR ARO条件成立TC 110测试AR ARO否则TC 011测试AR ARO 均为无符号数 C修改页指针 1条 LDPdirLDPind ARn LDP K 例LDP AR5前后ARP 4ARP 5AR4 300AR4 300300 06H300 06DP 1FFHDP 06 73 D 累加器的操作 6条 1 左移后装载累加器 32位送ACCLACCdir shift LACCdir 16LACCind shift ARn 移位时低位填0 高位受SXM影响 0 不扩展 1 扩展 LACCind 16 ARn LACC k shift 例 LACC 4 SXM 0 前后ARP 2ARP 2AR2 300AR2 300300 0FF300 0FFACC ACC 0FF0 例 LACC6 4 DP 6SXM 0 406H 01406H 01ACC ACC 10 74 2 装低16位且清高位 不扩展 低16位送ACC LACLdirLACLind ARn 无论SXM为何值 不扩展符号LACL K例 LACL AR4前后ARP 0ARP 4AR0 401AR0 400401 FFH401 0FFA A 0FF 3 装高16位 清低位 且D15 1 ZALRdirZALRind ARn 例 ZALR3 CDP 32 20H 1003 03F01003H 03F0ACC ACC 03F08000H 75 4 按规定左移后装累加器LACTdir 左移后装ACC 左移次数由TREG低4位决定 可左移0 15位 LACTind ARn 右移时受SMX影响5 存贮ACC高位SACHdir shift ACC32位左移0 7位后的高16位送数据存贮器SACHind shift ARn 6 存贮ACC低位SACLdir shift SACLind shift ARn 76 E 数据传递 6条 1 数据块传递 数据存贮器数据存贮器 块传递 BLDD lk dirBLDD lk ind ARn BLDDdir lk lk为地址 块长度由RPT指令设置到RPTC中 该指令不能用于存贮映射寄存器目的地址送 BLDDind lk ARn 例 BLDD 321H AR2前后ARP 2ARP 2AR2 301AR2 302301 01301 01PC 321PC 322321 0F321 01 例 BLDD 300H 20H DP 6 300H 0h300H 0H320H 0fh320H 0H 77 2 程序存贮器与数据存贮器的块传递BLPD Pdir dirBLPD Pdir ind ARn 例 BLPD 800 AR7前后程存贮器800H 1111H800 1111ARP 00ARP 7AR0 310AR0 310310 100310 1111 例 BLPD 800H 00H DP 6 程序存贮器 800H 0FH800H 0FH数据存贮器 300H 0H300H 0FH 3 片内数据存贮器间的数据传递 下传 DMOVdir数据存贮器内容数据存贮器 1的单元中 用于Z 1延迟操作 DMOVind ARn 例 DMOV8 DP 6308H 43H308H 43H309H 2H309H 43H 78 4 长立即数存贮到数据存贮器SPLK lk dir 不影响状态位 SPLK lk ind ARn 例 SPLK 7FF0H 3 DP 6303 FE07303H 7FF0H5 读表 块操作 ACC 程序存贮器数据存贮器间的块操作 ACC 程序存贮器数据存贮器TBLRdir 将程序存贮器单元中的字送指定的数据存贮器中TBLRind ARn 程序贮存器地址由ACC低位定义执行RPT时 TBLR变为单周期 表地址PC例 TBLR6 DP 4 ACC 23H程序存贮器23H 306H23H 306H数据存贮器206H 75H206H 306H 79 6 写表 块操作 写到 ACC16 的程序空间TBLWdirTBLWind ARn 例 TBLW 前后ARP 6ARP 6AR6 1006AR6 1006数据存贮1006 43401006 4340ACC 258ACC 258程序存贮器258 307258 4340 80 F 堆栈操作 4条 POP 栈顶至ACC低位PUSH 累加器低位进栈POPDdirPOPDind ARn PUSHDdirPUSHDind ARn G 输入 输出 2条 INdir PA 可与PRT一起使用 PA为口地址INind PA ARn OUTdir PAOUTind PA ARn 81 H 乘积寄存器 PREG 的操作 6条 1 装高位LPHdir 指定内容送PREG高位LPHind ARn 2 存贮PREG高位SPHdir 将PREG按PM规定移位后 送高位到数据存贮器SPHind ARn 执行时是将PREG送乘积移位器中处理结果不影响PREG3 存贮PREG低位SPLdir 将PREG复制到移位寄存器后按PM方式移位SPLind ARn 结果的低位送数据存贮器例SPL5 DP 4 PM 2 左移4位 前后PREG FE019844PREG FE079844205 4567H205 8440 82 4 PREG送ACCPAC P送AC 无操作数 将PREG内容按PM要求移位后送ACC例PAC PM 0PEGE 144PREG 144ACC ACC 1445 APAC PREG的内容按PM位规定移位后ACC PAPAC再送至累加器 无论SXM为何值 PREG都进行符号扩展受PM OVM影响 结果影响C OV6 SPAC P移位后ACC PACCSPAC 受PM OVM影响 无论SXM为何值 PREG均按符号扩展 影响C OV 83 TREG临时寄存器 乘数寄存器 操作 5条 1 装TLTdirLTind ARn 2 装T且将P移位后送累加器LTPdir 先装TREG 然后PREG移位后送ACCLTPind ARn 3 装T 后将P与累加器相 结果送累加器LTAdir 指定内容送TREG 然后PREG送移位器按PM方式移位 再与累加器内容相加后送ACCLTAind ARn 结果影响C位及OV位 受PM位和OVM影响例LTA AR5 PM 0前后ARP 4ARP 5AR4 324AR4 324324 62324 62TREG 3TREG 62PREG FPREG FACC 5ACC 14 84 4 装T 累加 下移数据LTDdir 首先装载TREG并送到数据 1的单元中 然后PREG送移位器移位 再加累加器后送累加器LTDind ARn 受PM及OVM影响 影响C及OV状态位5 装T 并减前次乘积LTSdir 先装TREG 然后PREG移位 再将ACC 移位后的值送ACCLTSind ARn 例LTS36 DP 6 PM 0 前后324 62H324 62HTREG 3HTREG 62HPREG 0FHPREG 0FHACC 05HACC FFFFFFF6 J 设置P的移位方式 1条 SPMconstand 取值0 3 乘积移位方式 85 传送指令小结 共39条 ST状态寄存器2条LSTSSTAR辅助寄存器6条LARSARMARADRKSBRKCMPRDP页指针操作1条LDP累加器传送6条LACCLACLSACHSACLLACTZALR数据传送6条SPLKBLDDBLPDTBLRTBLWDMOV堆栈传送4条 POPPUSHPOPDPUSHDI O传送2条INOUTPREG6条LPHSPHSPLPACAPACSPACTREG5条LTLTPLTALTDLTSP的移位方式 1条 SPM 9条 12条 18条 86 5 2算术运算类 19条 A 加法指令 4条 1 不带C的加法ADDdir shift 除短立即寻址不受SXM影响外 其它均受影响ADDind shift ARn ADDdir 16 左移16位影响C OV 受OVM影响ADDind 16 ARn 正常情况结果有进位C 1 否则清0ADD K 不受SXM影响16位移加法时 有进位C 1 否则进位不变ADD lK shift 受SXM影响OVM 0时 结果不调整OVM 1时 结果为正调整为7FFFFFFF结果为负调整为800000002 带C的加法ADDCdir 不受SXM影响 受OVM影响 结果影响C和OVADDCind ARn 87 3 抑制符号扩展 加无符号数 ADDSdir 无论SXM为何值 均作为无符号处理累加器视为有符号数ADDSind ARn 受OVM影响 结果影响C OV 例 ADDS 前后ARP 0ARP 0AR0 300AR0 300300 FFFF300 FFFFACC 7FF0000ACC 7FFFFFFF4 按T 移位后加ADDTdir 数据存贮器的内容由TREG的低四位决定左移0 15位后相加ADDTind ARn 受SXM和OVM影响 结果影响C OV 以上指令均受OVM影响 结果都影响C OV 不受SXM影响的指令有 ADD KADDC dir ind 对ADDS无论SXM 数据视为无符号数 累加器视为有符号数受SXM影响的指令有 ADD 除ADD K ADDT 88 B 减法 5条 1 不带借位减ACC 存贮器内容 立即数结果送ACCSUBdir shift 短立即寻址不移位不受SXM影响但不可重复执行SUBind shift ARn 其它受SXM影响 SUBdir16有借位C 0 无借位C 1SUBind16 ARn 移位16次时 有借位C 0 无借位C不变SUB K其它影响C和OV SUB lK shift 2 带借位减 减借位时取借供C的反码 SUBBdir ACC 内容 C ACC不符号扩展SUBBind ARn 有进位C 0 无进位C 1 不受SMX影响受OVM影响 结果影响C和OV例 SUBB5DP 8前后405 06405 06ACC 06ACC FFFFFFFFC 0C 0 89 3 条件减SUBCdir 实现除法运算 条件是 ACC 0 数据 0SUBCind ARn 方法为若 ACC 数据X2 0则 ALU X2 1送ACC否则 ACC X2送ACC不受SXM和OVM影响 结果影响C OV除法的实现方法 被除数送ACC低位 高位清0 除数送数据存贮单元 执行SUBC指令16次 商在低16位 余数在高16位 15 例 SUBC2DP 6前后302 01302 01ACC 04ACC 08 04 01 215 04 2ACC 例 RPT 15SUBC 前后ARP 3ARP 3AR3 1000AR3 10001000 071000 07ACC 41HACC 20009HC 1完成41H 6565 7 9 2即 41H 7 9H 2H 90 4 减无符号数SUBSdir ACC为有符号数 学之内容为无符号数SUBSind ARn 不受SXM影响 结果影响C OV5 按下位移后减SUBTdir 左移由TREG低4位决定 0 15位SUBTind ARn 数据受SXM影响 和SXM影响 结果影响C OVC 平方指令二条 先累加再求平方 1 SQRAdir 受PM和SXM影响 影响C OVSQRAind ARn 先将PREG按PM移位后 ACCACC 数据送TREG 数据 TREGPREG 91 例 SQRA30DP 6前后31E OF31E OFTREG 3TREG 0FPREG 12CPREG E1 31EH 31EH 0F 0F E1HACC 1F4ACC 320ACC PREG 1F4H 12CH 320H2 先减PREG再先平方SQRS 同上 区别是减以上减法指令结果均影响C和OV SUB K不受SXM影响 不移位 对移位16次指令时 无借位时C不变 有借位C 0 SUBB指令不受SXM影响 SUBC不受SXM影响 且被除数数和减数均要 0 SUBS不受SXM影响 SPAC受SXM和OVM影响 SQRASQRS受PM和SXM影响 2 92 D 乘法指令 6条 1 数据 TREGPREGMPYdirMPYind ARn MPY K3K为13位13位立即数右对齐 乘前进行符号扩展2 数据 T送P 按PM移位后P ACC送ACCMPYAind ARn 数据 TREG送PREGMPYAdirPREG ACC送ACC按PM对PREG乘积移位3 先乘再减 MPYSdirMPYSind ARn 数据 TREG送PREGACC PREG送ACC按PM对PREG乘积移位 受SXM影响 结果影响C4 无符号乘 MPYUdirPREG和数据均作为无符号数相乘后送PREGMPYUind ARn 受SMX OVM影响影响C和OV 93 5 乘且累加MACpdir dirMACPdir ind ARn 程序存贮器中的一串数与数据存贮器中的一串数 间接寻址 或一个数 直接寻址 分别相乘再累加 受PM OVM影响 结果影响C OV 执行步骤 PC 1送微堆栈 Pdir首址选PC 前次乘积结果按PM移位 TREG 移位后的数 ACC 送ACC 影响C 数据 送TREG TREG PC 送PREG PC 1送PC RPTC 1送RPTC若RPTC 0 则微堆栈送PC RPT启动之后 MAC为单周期指令 94 例 MACOFFOOH 02H DP 6PM 0CNF 1 BO指向程序存贮器 前后数据存贮器302 23H320 23H程序存贮器FF00 4HFF00 4HTREG 45H PREG ACC既PRGE ACC送ACC 76975B3HPREG 458972HTREG 23H既 302H 送TREGACC 723EC41HPREG 8CH既 FFOOH TREG送PREG23H 04H 8CH6 乘且累加 存贮器内容下移一步MACDpdir dir同上 但要将当前数据存贮器内容复制到下一个单元中MACDpdir ind ARn 95 C 标准化指令 2条 1 取绝对值指令 ABS ACC ACC均以二进制补码表示 执行后C 0不受SMX影响 特殊情况当OVM 0时 80000000H 80000000当OVM 1时 80000000H 7FFFFFFFH2 规格化 NORMind对ACC中的定点数进行规格化ACCAR执行时 ACC31 ACC30 符号扩展 则ACC左移1位 且AR 1AR默认指数为负指数ACC 0则TC 0ACC31 ACC30则TC 1ACC31 ACC30则TC 0例 NORA 前后ARP 2ARP 2AR2 00AR2 01ACC FFFFF001HACC FFFFE002HTC 0 尾数 指数 96 算术运算类指令小结 19条 加法 4条 ADDADDCADDSADDT减法 5条 SUBSUBBSUBCSUBSSUBT平方 2条 SQRAAQRS乘法 6条 MPYMPYAMPYSMPYUMACMACD规格化 2条 ABSNORM 97 3 逻辑运算指令 9条 1 与 ANDdirANDind ARn AND lk shift AND lk 16 2 或ORdirORind ARn OR lk shift OR lk 16 3 异或XORdirXORind ARn XOR lk shift XOR lk 16 低ACC16位操作不受SMX影响 不影响状态位高位为0数据左移后 与 ACC 低16位操作高16位不变数据左移后 或 ACC 低16位操作高16位不变数据左移后 或 ACC 98 4 非CMPL AA 5 负 取补 NEG Ax1A受OVM影响 结果影响C和OV若ACC 0则C 1ACC 0则C 0 6 逻辑左移ROL 7 逻辑右移ROR 8 算术左移SFL 9 算术右移SFR C ACC C ACC C C 0 99 逻辑运算指令小结 9条 逻辑运算ANDORXORCMPLNEG移位运算ROLRORSFLSFR 100 4 转移 调用 中断及控制指令 19条 1 无条件转移双字Bpdir ind ARn Pdir可为符号地址或数字地址 2 依累加器内容转移单字BACC 3 AR 0转移双字指令BANZpdir ind ARn 默认为当前AR 1AR 4 条件转移单字指令BCNDpdir cond cond2 条件满足转移 101 5 无条件调用双字CALLpdir ind A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年办公室布局改造合同二篇
- 招聘流程标准化执行手册解读
- 企业管理与外部合作活动方案
- 汽车维护与保养维修操作手册
- 7.4宇宙航行 课件高一下学期物理人教版必修第二册-1
- 企业行政管理手册内容梳理模板
- 屋面防水布置施工质量验收规范
- 地下综合管廊顶管施工阶段作业计划
- 施工临边防护栏杆安装验收规范
- 施工场地消防设施维护方案
- 机械识图全套课件
- 2025年江苏省南通市中考生物试卷(含答案解析)
- 管理心理学 权利与政治
- NB/T 11440-2023生产煤矿储量估算规范
- 招投标挂靠合同范本
- DL∕T 523-2017 化学清洗缓蚀剂应用性能评价指标及试验方法
- HJ 651-2013 矿山生态环境保护与恢复治理技术规范(试行)
- 《数字道路路侧毫米波雷达技术要求》(征求意见稿)
- 人教版初中英语七至九年级单词汇总表(七年级至九年级全5册)
- 青岛科技大学2023年综合评价招生考试诚信承诺书
- 辉瑞标准销售模式
评论
0/150
提交评论