资源描述:
《《汇编语言初步》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四讲汇编语言初步目的:用汇编语言编写简单程序BIT/TI1第四讲汇编语言初步学习内容汇编代码的结构汇编程序的构成编写简单算法:y=mx+bBIT/TI2第四讲汇编语言初步一、汇编代码的构成label:
2、
3、[cond]instruction.unitoperand;comment标号:代码或变量地址条件寄存器指令:助记符(mnemonic)伪指令(directive)功能单元(可选)操作数:寄存器常量指针注释x.int10MPY.M1A1,A3,A7
4、
5、ADD.L1xA2,B2,A5BIT/TI3第四讲汇编语言初步常用伪指令在C语言里long是4
6、0位,在汇编语言里long是32位注意BIT/TI4第四讲汇编语言初步二、汇编程序的构成程序=数据结构+算法数据结构算法C程序的数据结构和算法实现BIT/TI5第四讲汇编语言初步汇编程序-数据结构用汇编语言声明数据结构BIT/TI6第四讲汇编语言初步汇编程序-算法用汇编语言编写算法BIT/TI7第四讲汇编语言初步完整的汇编程序构成.sect“myData”m.int5x.int10b.int2y.int0.sect“myCode”startLD.D1*A0,A1...ST.D1A7,*A6endBendNOP5BIT/TI8第四讲汇编语言初步三、
7、用汇编指令编写y=mx+b1.数据取入寄存器:m,x,b存储器->寄存器1a.初始化数据指针1b.取数据2.乘法3.加法4.存储数据:y寄存器->存储器BIT/TI9第四讲汇编语言初步1a.指针初始化32位常量MVK.S1m,A0MVKH.S1m,A0;&m->A0MVK.S1x,A2MVKH.S1x,A2;&x->A2MVK.S1b,A4MVKH.S1b,A4;&b->A4BIT/TI10第四讲汇编语言初步指令MVKMVK把一个16位常数放入寄存器BIT/TI11第四讲汇编语言初步1b.取数据LDH.D1*A0,A1;取mLDH.D1*A2,A
8、3;取xLDH.D1*A4,A5;取bNOP4BIT/TI12第四讲汇编语言初步LD/ST指令三种Load指令,对应不同长度的数据LDW取32位字(word)LDH取16位半字(short)LDB取8位字节(byte)对无符号数(字节、16位半字)LDBULDHU指令延迟:四个延迟间隙三个存储指令STWSTHSTB数据取入寄存器后进行符号扩展无符号扩展BIT/TI13第四讲汇编语言初步指令延迟间隙延迟间隙:多周期指令所需要插入的NOP指令个数BIT/TI14第四讲汇编语言初步2.乘法MPY.M1A1,A3,A7NOPBIT/TI15第四讲汇编语言
9、初步乘法指令四种乘法指令MPY(U/US/SU)16LSB×16LSBMPYH(U/US/SU)16MSB×16MSBMPYH(U/S)L(U/S)16MSB×16LSBMPYL(U/S)H(U/S)16LSB×16MSB指令延迟槽:1两个乘法单元可以在一个周期内做两次乘法BIT/TI16第四讲汇编语言初步3.加法或或ADD.?应该使用哪个功能单元?ADD.?A5,A7,A7BIT/TI17第四讲汇编语言初步4.存储结果BIT/TI18第四讲汇编语言初步完整的y=mx+b汇编程序.title"lab4.asm"/*定义数据结构*/.sect"my
10、Data”m.short10x.short5b.short2y.short0/*算法*/.sect"myCode"/*指针初始化*/init:mvk.s1m,A0;A0=&mmvkh.s1m,A0mvk.s1x,A2;A2=&xmvkh.s1x,A2mvk.s1b,A4;A4=&bmvkh.s1b,A4mvk.s1y,A6;A6=&ymvkh.s1y,A6/*取数据*/ldh.d1*A0,A1;A1=mldh.d1*A2,A3;A3=xldh.d1*A4,A5;A5=bnop4/*核心算法*/start:mpy.m1A1,A3,A7;A7=mxn
11、op1add.l1A5,A7,A7;A7=mx+bsth.d1A7,*A6/*结束循环*/b$;endlessloopnop5BIT/TI19第四讲汇编语言初步