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,

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Scrapy爬虫框架,入门案例(非常详细)「建议收藏」

    Scrapy爬虫框架,入门案例(非常详细)「建议收藏」Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,后台也应用在获取API所返回的数据(例如AmazonAssociatesWebServices)或者通用的网络爬虫.Scrapy吸引人的地…

  • 报关与报检的区别和联系_简述报关与报检的区别

    报关与报检的区别和联系_简述报关与报检的区别区别是,报关是向海关申报,海关查验的重点是申报的货物与实际是否相符报检是向商检局申报,商检的查验重点是货物是否符合合同的或国家或国际的相关标准和要求.所有进出口货物均必须向海关申报不是所有的进出口货物都需要报商检,(看货物的HS编码是否属于免检范围)联系是,先报检后报关,凭商检检货合格后出具的”换证凭条”(单)换通关单,再凭通关单及其他相关单据向海关申报问题:通关单

  • java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」

    java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」java+SQL做学生信息管理系统(增删改查)过程中需要用到的所有工具数据库以及数据库管理器等等密码:q80t大学学习java后做的第一个小项目忍不住分享一下,也是我自己的面向对象编程的实践作业啦,有点水,不是很优。废话不多数,下面进入正题界面的编写是非常简单的,直接贴代码了,首先看添加功能Add.javaimportjavax.swing.*;importjava.awt.*…

  • ios消息推送机制_iPhone消息推送

    ios消息推送机制_iPhone消息推送原文地址:http://www.apkbus.com/android-130195-1-5.html推送是解决轮询所造成的流量消耗和电量消耗的一个比较好的解决方案,在Android上,虽然Google提供了GCM(之前为C2DM),但在国内基本等于没用,各大Android应用基本都自己架设推送Server或是使用第三方推送平台,例如新浪微博使用第三方推送平台“个推”(非广告 )。今天要

  • Data Mining资源大全

    Data Mining资源大全

  • cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好

    cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好正常情况下CD4/CD8比值介于1.5—2.5之间,如CD4是每微升血750个,CD8是每微升血460个,这样两者的比值就是1.63。虽然95%的正常人CD4/CD8的比值都在1以上,但是也有一些正

发表回复

您的电子邮箱地址不会被公开。

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