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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm代码灰色_pycharm中import是灰色的

    pycharm代码灰色_pycharm中import是灰色的问题描述不少新手在使用Pycharm时都遇到了这样的问题,import导入包的时候,比如importurllib,importos,写的时候还是彩色,一写完,一按回车,马上就变成了灰色。解决方案1、配置python解释器有误也就是说python找不到你的包,这种原因的解决方案可以参照我的另一篇文章。https://blog.csdn.net/Nire_Yeyu/article/de…

    2022年8月26日
    4
  • 项目启动,无法加载Spring xsd文件

    项目启动,无法加载Spring xsd文件问题的产生:有个Java项目(Jar文件),每半小时重启一次,对外提供服务。突然收到报警,早上5点半重启服务时出错,服务无法正常启动。查看启动日志,错误是xml解析失败,无法找到xml元素的声明。具体报错日志如下:INFO:LoadingXMLbeandefinitionsfromclasspathresource[applicationContext-task

    2025年8月5日
    3
  • 打印星型图「建议收藏」

    打印星型图「建议收藏」打印星型图

    2022年4月24日
    39
  • 基于jsp和基于web的区别_java发送短信

    基于jsp和基于web的区别_java发送短信最新web/java/jsp实现发送手机短信验证码和邮箱验证码的注册登录功能(详细)最近几天有人需要帮忙做一个关于发送验证码的功能,之前没有做过,于是我鼓捣一阵子,记录一下关于web项目中注册登录常用的手机验证码和邮箱验证码的发送。作为一个演示项目,我没有使用任何框架,用了一个简单的jsp+Servlet,当然用boostrap美化了一下。代码带有注释,非常简单易懂。一、手机验证码由于手机…

    2022年10月13日
    3
  • 没用过这些 IDEA 插件?怪不得写代码头疼

    没用过这些 IDEA 插件?怪不得写代码头疼使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。

    2022年6月4日
    32
  • mpc hc设置_mpc是指什么

    mpc hc设置_mpc是指什么MPC-HC播放器设置启动 MPC-HC ,先设置语言:(最新版本会自动选择对应的系统语言)View-Language-Chinese=>界面变为中文进 视图-选项:播放器:建议勾选「保存设置至.ini文件中」格式:建议勾选全部视频类格式,其中 QuickTime 建议采用「DirectShow」滤镜(双击右侧,在下拉框中即可选择),播放性能会

    2025年11月14日
    2

发表回复

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

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