C语言与ASM以及线性汇编初步



《C语言与ASM以及线性汇编初步》由会员分享,可在线阅读,更多相关《C语言与ASM以及线性汇编初步(90页珍藏版)》请在装配图网上搜索。
1、1896192019872006C C语言与语言与ASMASM以及线性汇编初步以及线性汇编初步牛金海等牛金海等校长办公室校长办公室the Office of the President主要内容主要内容C语言、ASAM和线性汇编三种编程工具的比较指令集概述C语言编程初步和实验-学习开发工具的使用,C代码性能的优化的使用(变量声明两种变量访问方式;C优化器选项;Intrinsics;字访问)ASAM汇编语言初步和实验学习用汇编语言编写简单程序线性汇编编写C可调用的汇编程序校长办公室校长办公室the Office of the President三种开发工具的比较三种开发工具的比较 -C -C、AS
2、MASM、线性汇编线性汇编校长办公室校长办公室the Office of the President 三种开发工具的比较三种开发工具的比较TI的DSP软件设计可采用有C/C+语言(.c)、汇编语言(.asm)和线性汇编(C语言和汇编语言的混合编程,.)。用语言开发应用程序优缺点:优点:易于开发和维护,用C语言书写接近自然语言,可读性强、利于理解;可移植性强;不容易发生流水线冲突;有大量现存算法可用;适用于的执行效率相对较低,不能满足实时性的要求。线性汇人机界面的开发。缺点:代码量大;程序效率较低;优化代码存在一定困难。一般用C语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的复杂
3、算法。编可把两者优点有效结合起来,设计出性价比最好、开发周期较短、比较复杂的系统,已是在C62XX上最流行的编程方法。校长办公室校长办公室the Office of the President用汇编语言开发应用程序的优缺点:优点:更能发挥系统特点,汇编语言设计出的程序更贴近硬件特性,往往能将硬件效能发挥到极致;代码精练、不易产生冗余、效率高;代码量小。缺点:可读性差,不利于复杂算法的开发和实现;可移植性差;容易产生流水线冲突;复杂性高、开发周期长。三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President 三种开发工具的比较三种开发工具的比较
4、C 语言程序在执行时,先要调用 C 标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序 main()运行,而汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”;由于 CCS 的代码链接器默认支持 C 语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。校长办公室校长办公室the Office of the President什么是线性汇编?线性汇编类似于汇编代码,不同的是线性汇编代 码中不需要给出汇编代码必须指出的所有信息,线性汇编代码对这些信息可以进行一些选择,或 者由汇编优化器确定。下面是不
5、需要给出的信息:使用的寄存器 指令的并行与否 指令的延时周期 指令使用的功能单元 三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President何时使用线形汇编?1.当程序中需要操作与硬件密切相关的设备,而用C语言较难实现时;C编译器的规定,进行特殊操作时。如:C语言规定程序不能访问代码区,当需要进行类似访问时可用限制较小的汇编语言程序设计;3.当需要提高模块的效率(包括空间上和时间上),而C语言程序无法达到要求时。三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President1)点积的C语言代码
6、三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President2)ASM语言代码 三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President3)非并行的ASAM代码 4)并行的ASAM代码 三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President非并行和并行ASAM代码性能比较5)线性汇编代码 三种开发工具的比较三种开发工具的比较校长办公室校长办公室the Office of the President完整的线性汇编代码 三种开发工具的比较三
7、种开发工具的比较校长办公室校长办公室the Office of the PresidentC C代码代码 代码效率低使用使用IntrinsicsIntrinsics的的C C代码代码嵌入汇编嵌入汇编 容易破坏C环境汇编代码汇编代码 编程工作量大 三种开发工具的比较三种开发工具的比较y=a*by=_mpy(a,b)asm(“MPY A0,A1,A2”)MPY A0,A1,A2,;a,b,y校长办公室校长办公室the Office of the President开发工具 效率 编程工作量 三种开发工具的比较三种开发工具的比较80-100%CC+CompilerOptimizerLow95-100
8、%LinearASMAssemblyOptimizerMed100%HighASMHandOptimize校长办公室校长办公室the Office of the President软件工具流程 三种开发工具的比较三种开发工具的比较Editor.saAsmOptimizer.c/.cppCompilerAsm.asmLinker.objLink.cmd.map.out校长办公室校长办公室the Office of the President硬件工具流程 三种开发工具的比较三种开发工具的比较仅软件仅软件含含DSPPCI卡卡ISA卡卡无无DSP校长办公室校长办公室the Office of the
9、President指令集概述指令集概述校长办公室校长办公室the Office of the President指令集概述指令集概述操作码映射(.L/.M)指定条件寄存器指定条件寄存器是否等于零的测试是否等于零的测试源源2使用交叉通路使用交叉通路指令域指令域目的寄存器为目的寄存器为A组或组或B组组并行执行并行执行校长办公室校长办公室the Office of the President操作码映射(.D)指令集概述指令集概述基址基址寻址寄存器寻址寄存器寄存器偏移量寄存器偏移量/5/5位无符号常量位无符号常量寻址模式寻址模式 LDDWLDDW位位选择选择D1D1或或D2D2load/storelo
10、ad/store指令域指令域校长办公室校长办公室the Office of the President操作码映射(NOP)指令集概述指令集概述校长办公室校长办公室the Office of the President并行操作取指包的基本格式取指包:八条32bit指令;执行包:并行执行的所有指令。执行包中的每一条指令使用的功能单元必须各不相同;每条指令的并行执行位(p位)控制本条指令是否与取指包中的其他指令并行执行:p=1 与下条指令并行;p=0 下条指令在当前指令的下个周期执行。指令集概述指令集概述校长办公室校长办公室the Office of the President例子:取指包的部分并行
11、p位模式指令集概述指令集概述校长办公室校长办公室the Office of the President条件操作指令集概述指令集概述z=1,进行零测试z=0,进行非零测试creg=0,z=0,意味着指令将无条件地执行。校长办公室校长办公室the Office of the PresidentC62xx指令集(根据操作类型分类)指令集概述指令集概述校长办公室校长办公室the Office of the PresidentC62xx指令集(根据功能单元分类)指令集概述指令集概述校长办公室校长办公室the Office of the PresidentC62xx指令集(根据执行周期分类)指令集概述指令
12、集概述Single CycleABSADDADDAADDKADD2SADDSA TSSUBSUBSUBASUBCSUB2ANDCMPEQCMPGTCMPLTNOTNEGORSHLSHRSSHLXORMVMVCZEROMVKMVKHCLREXTLMBDNORMSETMultiplyMPYMPYHMPYHLPMYLHSMPYSMPYBranchBLoadLDOtherNOPIDLEStoreST校长办公室校长办公室the Office of the PresidentC C语言编程初步语言编程初步校长办公室校长办公室the Office of the President建议的程序开发流程C C语言
13、编程初步语言编程初步C程序程序C程序优化程序优化用线性汇编改用线性汇编改写关键代码段写关键代码段校长办公室校长办公室the Office of the PresidentC C语言编程初步语言编程初步C的代码产生工具校长办公室校长办公室the Office of the President编译命令C C语言编程初步语言编程初步编译器选项编译器选项CL6x-g file1.c file2.asm file.sa file3-s-as-z C程序直接调用汇编器程序直接调用汇编器 标准汇编直接调用汇编器标准汇编直接调用汇编器 线性汇编调用汇编优化器线性汇编调用汇编优化器 无扩展名默认为无扩展名默认为
14、C文件文件-gks 建工程时可直接调用在建工程时可直接调用在CCS中进行编译、汇编和链接工具,也可中进行编译、汇编和链接工具,也可在在CCS外用外用DOS Shell程序直接调用:程序直接调用:C16x options files校长办公室校长办公室the Office of the President常用的编译选项C C语言编程初步语言编程初步选项功能备注-g使能符号调试编译选项-s在 C 编译器生成的.asm 文件中,使能 C 语句和汇编指令交叉列表编译选项-on启动C优化器的最高级别优化编译选项-pm与-o3合用,使能程序级优化编译选项-al生成汇编器列表文件汇编选项-as保留汇编符号,
15、用于调试汇编选项-z启动连接器连接选项-o可执行输出文件连接选项-m映射文件名(.map)连接选项-l运行支持库连接选项校长办公室校长办公室the Office of the President连接器选项C C语言编程初步语言编程初步CL6x-g-s file.c-z link.cmd-o file.out-运行支持库运行支持库 连接器命令文件连接器命令文件 -z调用连接器调用连接器 输出文件名输出文件名链接器可用下面语句调用:链接器可用下面语句调用:校长办公室校长办公室the Office of the PresidentC62xx C 数据类型C C语言编程初步语言编程初步注意:在32位计
16、算机上C语言的long代表Size是32bits校长办公室校长办公室the Office of the President变量声明 对局部变量的访问 在堆栈内分配存储空间;用堆栈首地址作首基地址,用指针*+B15(disp)来访问;堆栈分配在默认段.stack。C C语言编程初步语言编程初步.cinit变量初值表.const常量.text代码.bss全局变量和静态变量.stack堆栈空间.sysmem用于存储器分配函数.farFar变量校长办公室校长办公室the Office of the President变量声明全局变量/静态变量两种访问形式C C语言编程初步语言编程初步1.默认的访问方式
17、默认的访问方式Near变量变量int n;int n;main()main().n+=.n+=.变量变量far intfar int n;n;main()main().n+=.n+=.编译后的汇编输出和访问方式编译后的汇编输出和访问方式编译后的汇编输出和访问方式编译后的汇编输出和访问方式.bssbss _n,4,4 _n,4,4ldw.d1ldw.d1 *+DP(_n),A0+DP(_n),A0_ _n n.usect.usect.far.far,2,2,2,2mvkmvk_n,A1_n,A1mvkhmvkh_n,A1_n,A1ldw.d1 ldw.d1*+A1,A0+A1,A0在在.bss内
18、分配地址内分配地址一条指令访问一条指令访问在在.far内分内分配地址三条配地址三条指令访问指令访问校长办公室校长办公室the Office of the President变量声明Near变量的生成和使用C C语言编程初步语言编程初步C语言语言汇编语言汇编语言LDW .D2 *+B15(12),Reg相对偏移地址相对偏移地址校长办公室校长办公室the Office of the President变量声明Near/Far变量-例子C C语言编程初步语言编程初步声明声明C变量名加下划线变量名加下划线编译编译输出输出校长办公室校长办公室the Office of the President变量声明
19、总结 局部变量在堆栈段.stack分配地址,用一条指令访问。采用near形式声明全局变量,变量分配在数据段.bss,用一条指令访问。采用far形式声明全局变量,变量分配在数据段.far或 用户自定义数据段,用三条指令访问,应尽量避免采用C C语言编程初步语言编程初步校长办公室校长办公室the Office of the PresidentC优化器经过C优化器的优化,以及其它C语言优化后,C代码效率可达7080用优化选项启动C C语言编程初步语言编程初步优化选项作用优化级别-o0优化寄存器的使用-o1本地优化-o2或-o全局优化-o3文件级优化低高优化器选项优化器选项有软件流水功能有软件流水功能
20、校长办公室校长办公室the Office of the PresidentC优化器与优化有关的其它编译选项 建议使用建议使用 -pm与-o3合用,进行程序级优化 -mt程序中没有数据aliasing -x2函数内联 不要使用不要使用 -ml大模式(使得.bss段内的变量都按far方式访问)-g符号调试 -s,-ss,-osC编译器生成的汇编文件内,C语句作为注释出现C C语言编程初步语言编程初步Aliasing两个指针指向同一个变量,两个指针指向同一个变量,或一个指针修改后指向或一个指针修改后指向另外一个变量另外一个变量校长办公室校长办公室the Office of the President
21、C优化器使用步骤-建议 1.不带优化选项进行编译(功能验证)cl6x-g-s file.c-z 2.用优化选项-o2进行编译(-o2是与符号调试兼容的最高优化级别)cl6x-g-o file.c-z 3.用最高级别优化选项进行编译cl6x-o3-pm file.c-zC C语言编程初步语言编程初步以上每个步骤都需要进行功能验证以上每个步骤都需要进行功能验证注意注意校长办公室校长办公室the Office of the PresidentC优化器 3.Intrinsics 它是直接与C62xx汇编指令相对应的特殊内联函数,没有函数调用开支。常见的Intrinsics列表如下:C C语言编程初步语
22、言编程初步对应汇编指令对应汇编指令.trip加法、减法、乘法加法、减法、乘法位域操作、位域操作、long转换转换为为intIntrinsics的特点的特点 函数参数使用函数参数使用C变量变量名名(不是寄存器不是寄存器),与,与C环境兼容;环境兼容;不增加不增加C的编程工作的编程工作 量;量;代码效率与汇编相代码效率与汇编相同。同。校长办公室校长办公室the Office of the PresidentC优化器 4.字访问 字访问优化方法:C C语言编程初步语言编程初步1)利用利用32位字访问位字访问16位数据位数据(三种方法三种方法)联合联合Union强制类型转换强制类型转换把数据直接定义为
23、把数据直接定义为32位字位字2).利用利用Intrinsics完成数值运算(完成数值运算(_mpy,_mpyh,_add2,_sub2校长办公室校长办公室the Office of the PresidentC优化器 4.字访问-联合UnionC C语言编程初步语言编程初步必须按照必须按照word数据定界数据定界校长办公室校长办公室the Office of the PresidentC优化器 4.字访问-强制类型转换C C语言编程初步语言编程初步校长办公室校长办公室the Office of the PresidentC优化器 4.字访问-把数据直接定义为32位字C C语言编程初步语言编程初
24、步校长办公室校长办公室the Office of the PresidentC优化器 4.字访问-小结C C语言编程初步语言编程初步 用用union方式需要对调用函数和被调用函数进行方式需要对调用函数和被调用函数进行 修改修改 用强制类型转换,只需要修改被调用函数用强制类型转换,只需要修改被调用函数 直接定义为直接定义为32字,影响程序可读性字,影响程序可读性校长办公室校长办公室the Office of the President实验实验实验内容实验内容:两个数组点积运算实验目的实验目的:掌握编译过程、C优化器的使用 熟悉Simulator开发环境 学习程序性能测试方法校长办公室校长办公室t
25、he Office of the President 实验:实验:两个数组两个数组点积运算点积运算代码开发流程代码开发流程运算的两个基本指令校长办公室校长办公室the Office of the President 实验:实验:两个数组两个数组点积运算点积运算相加(相加(.L L单元)单元)校长办公室校长办公室the Office of the President寄存器组A 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President寄存器取代变量 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office o
26、f the President 实验:实验:两个数组两个数组点积运算点积运算建立循环1.添加跳转指令和循环标号校长办公室校长办公室the Office of the President建立循环2.设定一个循环计数器 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President建立循环3.添加递减循环计数指令 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President建立循环4.给出基于循环计数值的跳转条件所有指令都是根据下面条件寄存器的值为0或非0条件地执行:A1、A2、B0、
27、B1、B2。代码语法 指令执行条件A2 A2 0!A2 A2=0 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President 实验:实验:两个数组两个数组点积运算点积运算设将数值读入寄存器如何读取a和x?、x和Y在存储器中2.建变量指针3.load/store中使用指针校长办公室校长办公室the Office of the President读取/存入(.D单元)实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President读取指针1.地址是常数,因此使用指令MVK:指令所移的位
28、数:16 bit3.表示一个完整地址的位数:32 bit4.一个地址读入寄存器必须使用两条指令,例如:实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President关于指针第1次循环后,A4为:第2次循环如何访问a(1)和x(1)实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President递增指针 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President另一套功能单元和寄存器 实验:实验:两个数组两个数组点积运算点积运算
29、校长办公室校长办公室the Office of the President代码复习,只使用A侧 实验:实验:两个数组两个数组点积运算点积运算校长办公室校长办公室the Office of the President汇编语言初步汇编语言初步校长办公室校长办公室the Office of the President汇编语言初步汇编语言初步学习内容汇编代码的结构汇编程序的构成编写简单算法:y=mx+bC:CCStudio_v3.3docsPDFspru187n.pdf 第节,讲了混合编程的调用关系例子校长办公室校长办公室the Office of the President汇编代码的构成汇编语言初步
30、汇编语言初步label:|cond instruction .unit operand ;comment标号:代码标号:代码或变量地址或变量地址条件寄存器条件寄存器指令:指令:助记符助记符(mnemonic)伪指令伪指令(directive)功能单元功能单元(可选可选)操作数:操作数:寄存器寄存器 常量常量 指针指针注释注释x .int 10 MPY.M1 A1,A3,A7|ADD.L1x A2,B2,A5 注意:注意:在输入汇编程序时,除标号以外的程序行都要以一个空格或在输入汇编程序时,除标号以外的程序行都要以一个空格或Tab制表字符开始制表字符开始校长办公室校长办公室the Office
31、of the President常用的伪指令汇编语言初步汇编语言初步汇编指令说明.sect定义一个代码段或数据段.usect定义一个未初始化数据段.int.long.word定义和初始化32位变量.short.half定义和初始化16位变量.byte定义和初始化8位变量注意注意在在C语言里语言里long是是40位,在汇编语言里位,在汇编语言里long是是32位位校长办公室校长办公室the Office of the President汇编程序的构成-程序数据结构算法程序数据结构算法汇编语言初步汇编语言初步C程序的数据结构和算法实现程序的数据结构和算法实现数据结构数据结构算法算法校长办公室校长办
32、公室the Office of the President汇编程序-数据结构汇编语言初步汇编语言初步用汇编语言声明数据结构用汇编语言声明数据结构校长办公室校长办公室the Office of the President完整的汇编程序构成汇编语言初步汇编语言初步.sect“myData”m.int5x.int10b.int2y.int0.sect“myCode”startLD.D1*A0,A1 .ST.D1 A7,*A6 endB endNOP 5校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 1.数据取入寄存器:m,x,b存储器寄存器 1a
33、.初始化数据指针 1b.取数据 2.乘法 3.加法 4.存储数据:y寄存器存储器汇编语言初步汇编语言初步校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 1a.初始化数据指针 汇编语言初步汇编语言初步MVK.S1m,A0MVKH.S1m,A0;&mA0MVK.S1x,A2MVKH.S1x,A2;&xA2MVK.S1b,A4MVKH.S1b,A4;&bA432位常量位常量校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b指令MVK汇编语言初步汇编语言初步MVK把一个把一个16位常数放入寄存器位常
34、数放入寄存器校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 1b 取数据汇编语言初步汇编语言初步LDH.D1*A0,A1;取取mLDH.D1*A2,A3;取取xLDH.D1*A4,A5;取取bNOP4校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b用LD/ST指令三种Load指令,对应不同长度的数据 LDW取32位字(word)LDH取16位半字(short)LDB取8位字节(byte)对无符号数(字节、16位半字)LDBU LDHU指令延迟:四个延迟间隙三个存储指令 STW STH ST
35、B数据取入寄存器数据取入寄存器后进行符号扩展后进行符号扩展无符号扩展无符号扩展 汇编语言初步汇编语言初步校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b指令延迟间隙延迟间隙:多周期指令所需要插入的延迟间隙:多周期指令所需要插入的NOP指令个数指令个数指令类型延迟间隙单周期0乘法1Load4跳转5汇编语言初步汇编语言初步校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 2.乘法汇编语言初步汇编语言初步MPY.M1 A1,A3,A7NOP 校长办公室校长办公室the Office of the
36、President 汇编语言初步汇编语言初步用汇编语言编写y=mx+b乘法指令四种乘法指令 MPY(U/US/SU)16LSB16LSB MPYH(U/US/SU)16MSB16MSB MPYH(U/S)L(U/S)16MSB16LSB MPYL(U/S)H(U/S)16LSB16MSB指令延迟槽:指令延迟槽:1 1两个乘法单元可以在一个周期内做两次乘法两个乘法单元可以在一个周期内做两次乘法校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 3.加法 汇编语言初步汇编语言初步ADD.?应该使用哪个功能单元?应该使用哪个功能单元?.L1.S1.D
37、1ADD.?A5,A7,A7或或或或校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b 4.加法 汇编语言初步汇编语言初步校长办公室校长办公室the Office of the President用汇编语言编写y=mx+b完整的y=mx+b汇编程序 汇编语言初步汇编语言初步 .title lab4.asm/*定义数据结构定义数据结构*/.sect myData”m .short 10 x.short 5b.short 2y.short 0/*算法算法*/.sect myCode/*指针初始化指针初始化*/init:mvk.s1 m,A0;A0=
38、&m mvkh.s1 m,A0 mvk.s1 x,A2;A2=&x mvkh.s1 x,A2mvk.s1 b,A4;A4=&b mvkh.s1 b,A4mvk.s1 y,A6 ;A6=&ymvkh.s1 y,A6/*取数据取数据*/ldh.d1*A0,A1 ;A1=mldh.d1*A2,A3 ;A3=xldh.d1*A4,A5 ;A5=bnop 4/*核心算法核心算法*/start:mpy.m1 A1,A3,A7;A7=mx nop 1 add.l1 A5,A7,A7;A7=mx+b sth.d1 A7,*A6/*结束循环结束循环*/b$;endless loop nop 5校长办公室校长办公
39、室the Office of the President线性汇编线性汇编校长办公室校长办公室the Office of the President线性汇编线性汇编在C程序中使用汇编语句 汇编指令和命令可以嵌入在C程序中,并用asm语句声明,该语句可访问硬件,而只用C语言很难直接访问硬件。asm (“assembly code”)编写可被C程序调用的汇编函数 可用extern语句作为函数的外部声明,如:extern int func()1.建立C环境 2.建立汇编环境 3.编写线性汇编函数 入口代码 算法 出口代码校长办公室校长办公室the Office of the President编写可被
40、C调用的线性汇编函数 1.建立C环境 1)在C程序前声明线性汇编函数 2)调用汇编函数线性汇编线性汇编1)声明声明2)调用调用校长办公室校长办公室the Office of the President编写可被C调用的线性汇编函数 2.建立汇编环境 1)汇编函数的入口地址声明为全局变量,汇编函数的入口地址C函数名前加下划线;2)定义函数入口地址。线性汇编线性汇编1)声明声明2)定义定义校长办公室校长办公室the Office of the President编写可被C调用的线性汇编函数 3.编写线性汇编函数线性汇编线性汇编.d de ef f_ _D DP P;声声明明函函数数名名,建建立立汇汇
41、编编环环境境_ _D DP P:.c cp pr ro oc cp pa ar ra am m0 0,p pa ar ra am m1 1;函函数数参参数数.r re es se er rv ve e r re es se er rv ve e_ _r re eg g;需需要要保保护护的的寄寄存存器器.r re eg gl lo oc ca al l_ _v va al l0 0,l lo oc ca al l_ _v va al l1 1,;函函数数内内的的寄寄存存器器变变量量M MV V p pa ar ra am m0 0,l lo oc ca al l_ _v va al l0 0;建
42、建立立函函数数参参数数与与M MV Vp pa ar ra am m1 1,l lo oc ca al l_ _v va al l1 1 ;寄寄存存器器变变量量名名的的关关系系.;算算法法.r re et tu ur rn n r re et tu ur rn n_ _v va al lu ue e;函函数数返返回回,r re et tu ur rn n_ _v va al lu ue e为为;物物理理寄寄存存器器或或寄寄存存器器变变量量名名.e en nd dp pr ro oc c入口入口代码代码出口出口代码代码校长办公室校长办公室the Office of the President线性
43、汇编的寄存器保护问题线性汇编线性汇编汇编优化器自动完成汇编优化器自动完成校长办公室校长办公室the Office of the President实验1实验2线性汇编线性汇编 实验目的:实验目的:学习和掌握利用学习和掌握利用intrinsics进行字长优化;进行字长优化;实验内容实验内容改写改写C语言点积函数,用强制类型转换法实现字优化。语言点积函数,用强制类型转换法实现字优化。实验目的:实验目的:掌握线性汇编语言和掌握线性汇编语言和C语言混合编程的方法;语言混合编程的方法;实验内容实验内容用线性汇编改写用线性汇编改写C的点积函数的点积函数。1896192019872006EndEndThanksThanks
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。