Chapter 6 汇编语言程序设计h.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 6 汇编语言程序设计h

第六章 汇编语言程序设计 主讲:胡文静 博士 概述 汇编语言源程序格式: 助记符指令一般包含4个部分,其一般组成形式为: [标号][:] 助记符 [操作数] [;注释] 书写格式规则详见P138,①②③④⑤⑥! 标号—所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多32个字符;由字母、数字、下划线和$组成,且不能以数字开头;分大小写;冒号不属于标号名;没有标号的源语句第一列必须为空格、星号或分号。 助记符—不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以“.”开头。 操作数—操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用“,”号隔开;三种前缀形式:#, *, @。 小数运算程序 定点DSP的小数表示法 基于2的补码形式; 数的定标有Q法和S法; C54X为16位:1位符号位,Q个小数位和15-Q个整数位。 小数运算程序 定点DSP的小数表示法 基于2的补码形式; 数的定标有Q法和S法; C54X为16位:1位符号位,Q个小数位和15-Q个整数位。 十进制小数的2的补码表示 正数:乘以32768; 负数:绝对值乘32768,再取反加1。 小数乘法 设字长为4位(累加器为8位),有如下小数乘法: 0.625×-0.125 【例5.7.1】求 ,数据全为小数 a1=0.3,a2=0.2,a3=-0.4,a4=0.1 x1=0.6,x2=0.5,x3=-0.1,x4=-0.2 分析 存储空间要求? 采用何种指令? 小数如何表示? 冗余符号位的消去: 需预留9个存储单元; 典型的乘-累加运算:MAC与RPT指令结合 0.3=3*32768/10 SSBX FRCT 实现源代码 .title Ex_571.asm .mmregs stack .usect STACK, 10H .bss a,4 .bss x,4 .bss y,1 .def start .data table: .word 3*32768/10,2*32768/10,-4*32768/10,1*32768/10 .word 6*32768/10,5*32768/10,-1*32768/10,-2*32768/10 .text start: SSBX FRCT STM #a, AR1 RPT #7 MVPD table, *AR1+ STM #a, AR3 STM #x, AR4 RPTZ A, #3 MAC *AR3+, *AR4+, A ;只能最多用到AR5,教材代码有误 STH A, @y done: B done .end 浮点运算 浮点数的表示 包含尾数和指数两部分 如:定点数0x2000(0.25)用浮点数表示时,尾数为0x4000(0.5),指数为1,即0.5×2-1; 尾数和指数都可正可负:尾数符号表示浮点数的正负,指数的符号表示浮点数的绝对值大小。 定点数转换成浮点数 Step1: EXP A Step2: ST T, EXPONENT Step3: NORM A 浮点运算 浮点数转换为定点数 将尾数按指数值进行左移(指数为负)或右移(指数为正) 浮点运算举例 编写浮点运算程序,完成x1*x2=0.4*(-0.9)。 分析: 首先确定需要分配的存储单元 确定需要用到的关键指令 流程图 浮点运算实现代码 .title Ex_581.asm .mmregs stack .usect STACK, 100H .bss a, 2 .bss b, 2 .bss c, 2 .bss ep, 1 .bss mp, 1 .bss product, 1 .bss temp, 1 .def start .data table: .word 4*32768/10,-9*32768/10 .text start: STM #stack+100, SP MVPD table, @a MVPD table+1, @a+1 LD @a, 16, A EXP A ST T, @b NORM A STH A, @c LD @a+1, 16, A EXP A ST T, @b+1 NORM A STH A, @c+1 CALL MULT done: B done MULT: SSBX FRCT SSBX SXM LD @b, A ADD @b+1, A STL A, @ep LD @c, T MPY @c+1, A EX

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档