C6000汇编语言实现乘法,C6000(四)-汇编.ppt[通俗易懂]

C6000汇编语言实现乘法,C6000(四)-汇编.ppt[通俗易懂]C6000(四)-汇编BIT/TI第四讲汇编语言初步第四讲汇编语言初步目的:用汇编语言编写简单程序学习内容汇编代码的结构汇编程序的构成编写简单算法:y=mx+b一、汇编代码的构成label:||[cond]instruction.unitoperand;comment常用伪指令二、汇编程序的构成程序=数据结构+算法汇编程序…

大家好,又见面了,我是你们的朋友全栈君。

C6000(四)-汇编

BIT/TI 第四讲 汇编语言初步 第四讲 汇编语言初步 目的:用汇编语言编写简单程序 学习内容 汇编代码的结构 汇编程序的构成 编写简单算法:y = mx+b 一、汇编代码的构成 label: || [cond] instruction .unit operand ;comment 常用伪指令 二、汇编程序的构成程序=数据结构+算法 汇编程序-数据结构 汇编程序-算法 完整的汇编程序构成 三、用汇编指令编写y=mx+b 1.数据取入寄存器:m,x,b存储器->寄存器 1a. 初始化数据指针 1b. 取数据 2.乘法 3.加法 4.存储数据:y寄存器->存储器 1a.指针初始化 指令MVK 1b.取数据 LD/ST指令 三种Load指令,对应不同长度的数据 LDW取32位字(word) LDH取16位半字(short) LDB取8位字节(byte) 对无符号数(字节、16位半字) LDBU LDHU 指令延迟:四个延迟间隙 三个存储指令 STW STH STB 指令延迟间隙 2.乘法 MPY .M1 A1, A3, A7 NOP 乘法指令 四种乘法指令 MPY(U/US/SU)16LSB×16LSB MPYH(U/US/SU) 16MSB×16MSB MPYH(U/S)L(U/S) 16MSB×16LSB MPYL(U/S)H(U/S)16LSB×16MSB 指令延迟槽:1 两个乘法单元可以在一个周期内做两次乘法 3.加法 4.存储结果 完整的y=mx+b汇编程序 程序最后是一个无限循环的跳转指令,注意跳转指令后的延迟槽。 B$ NOP5 存取指令的选择与数据类型密切相关。本例中使用的是int数据,因此相应的就使用LDW。相应的byte和short数据就使用LDB和LDH。(下页幻灯片) 指令延迟槽 LD指令需要5个周期才能完成,即LD指令后必须等待4个周期才能使用LD指令读取的数据。而在这之前相应寄存器内是旧的数据。 延迟槽就是在LD指令后,紧接着LD指令需要使用LD所取指令的下个指令前,需要插入的空操作指令NOP的个数。这里LD指令的延迟槽是4。下面是其它指令的延迟槽: * 标号:代码或 变量地址 条件寄存器 指令: 助记符(mnemonic) 伪指令(directive) 功能单元(可选) 操作数: 寄存器 常量 指针 注释 x .int 10 MPY .M1 A1, A3, A7 || ADD .L1x A2, B2, A5 在C语言里long是40位,在汇编语言里long是32位 注意 数据结构 算法 C程序的数据结构和算法实现 用汇编语言声明数据结构 用汇编语言编写算法 .sect “myData” m.int5 x.int10 b.int2 y.int0 .sect “myCode” startLD .D1 *A0,A1 . . . ST .D1 A7,*A6 endB end NOP 5 32位常量 MVK.S1m, A0 MVKH.S1m, A0; &m->A0 MVK.S1x, A2 MVKH.S1x, A2; &x->A2 MVK.S1b, A4 MVKH.S1b, A4; &b->A4 MVK把一个16位常数放入寄存器 LDH .D1*A0, A1; 取m LDH .D1*A2, A3; 取x LDH .D1*A4, A5; 取b NOP4 数据取入寄存器 后进行符号扩展 无符号扩展 延迟间隙:多周期指令所需要插入的NOP指令个数 或 或 ADD.? 应该使用哪个功能单元? ADD .?A5, A7, A7 .title “lab4.asm” /*定义数据结构*/ .sect “myData” m .short 10 x.short 5 b.short 2 y.short 0 /*算法*/ .sect “myCode” /*指针初始化*/ init:mvk .s1 m,A0;A0=&m mvkh .s1 m,A0 mvk .s1 x,A2 ;A2=&x mvkh .s1 x,A2 mvk .s1 b,A4;A4=&b mvkh .s1 b,A4 mvk .s1 y,A6 ; A6=&y mvkh .s1 y,A6 /*取数据*/ ldh .d1 *A0,A1 ; A1= m ldh .d1 *A2,A3 ; A3=x ldh .d1 *A4,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150513.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gamma校正什么意思_串联滞后校正对系统性能的影响

    gamma校正什么意思_串联滞后校正对系统性能的影响【Gamma的由来】首先,要区分照度和亮度,照度是一个客观的量,亮度是一个主观的量,不同的人看相同照度的物体所感受到的亮度是不一样的。对于照度线性变化的物体,人眼感受到的亮度不是线性的。人眼对于低照度的物体更敏感,这意味着对于照度为2、3、4的三个物体,人眼能够区分,而对于照度为222、223、224的三个物体,人眼不能区分。其次,我们存储颜色的空间是有限的,常用的RGBA32格式,每个颜色通道只有8位,最多能表示256种照度,而现实世界中的照度远超256。基于人眼对照度的感知特点,我们不能线性的去

    2022年9月22日
    3
  • 位图(bmp)文件格式分析

    from:https://blog.csdn.net/qingchuwudi/article/details/25785307位图(bmp)文件格式分析作者:深蓝(由博主分享)一、什么是位图计算机能以位图和矢量图格式显示图像。1、位图(Bitmap):图像又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图像。计算机屏幕其实就是一张包含大量像素…

    2022年4月3日
    214
  • spdlog学习笔记

    spdlog学习笔记说明:所有内容翻译自spdlog的wiki,受英语水平所限,有所错误或失真在所难免,如果您有更好的建议,请在博文下留言。线程安全spdlog::命名空间下的是线程安全的,当loggers在不同的线程同时执行时,下述函数不应该被调用:spdlog::set_error_handler(log_err_handler);//orlogger->set_error_handler(…

    2022年6月23日
    23
  • jzoj 1146. 危险系数(acrobat)

    jzoj 1146. 危险系数(acrobat)1146.危险系数(acrobat) (FileIO): input:acrobat.in output:acrobat.out时间限制: 1000ms  空间限制: 262144KB  具体限制  GotoProblemSet题目描述   N(1输入第一行:输入一个整数N;第2到

    2022年6月11日
    41
  • latex输入希腊字母_LaTeX绝对值

    latex输入希腊字母_LaTeX绝对值

    2022年8月31日
    3
  • 比较好用的mysql可视化工具—–pycharm连接mysql图文教程

    比较好用的mysql可视化工具—–pycharm连接mysql图文教程1.mysql可视化工具常用的mysql可视化工具有很多,如:sqlyog、navicat等等,使用这些工具需要另外安装,有的还可能收费。这里推荐一个比较容易被大家忽略的mysql可视化工具,大多数学python的人,都会使用pycharm,不得不说pycharm的功能及其强大,pycharm本身也是一个功能很强的数据库可视化工具,换句话说,如果安装了pyharm,那根本没必要在安装其他可视化工具了!这里以pycharm链接mysql为例,记录一下详细过程,供大家参考!2.使用工具我使用的工具如下

    2022年8月27日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号