[工作总结]詹剑峰514学习工作总结.doc
长沙天野电子科技有限公司詹剑峰学习工作总结日期:2011年5月9日 星期:星期一内容简介上午学习ARM 32位指令体系,ARM寻址方式,ARM的基本指令前半部分。下午继续学习ARM指令体系,ARM基本指令的后半部分,完成整个ARM指令的学习,初步熟悉ARM指令。总结体会ARM基础学习体会开始ARM指令集的学习,了解ARM指令结构,寻址方式,掌握ARM的指令体系,了解ARM的基本指令功能,形成初步印象。1.ARM指令寻址:共9种寻址方式,分别是寄存器寻址,立即寻址,基址寻址,变址寻址,堆栈寻址,多寄存器寻址,寄存器间接寻址,寄存器移位寻址,相对寻址与块拷贝寻址。2.指令格式:<opcode> <cond> s <Rd>, <Rn> ,<operand2>助记符 执行条件 是否影响CPSR 目标寄存器 第一个操作数,第二个操作数Operand2,常数表达式 ,寄存器,寄存器移位方式3.执行条件:EQ 相等 NE不相等 CS/HS无符号数大于或等于 CC/LO无符号数小于 MI负数PL正数或零 VS溢出 VC没有溢出 HI无符号数大于 LS无符号数小于或等于GE有符号数大于或等于 LT有符号数小于 GT有符号数大于 LE有符号数小于或等于 AL无条件执行 (指令默认条件) NV从不执行(不要使用) 4.存储器访问指令:存储器是与ARM内的寄存器相对应的,很明显可分为几种访问方式,加载寄存器(LDR)寄存器存储(STR)多寄存器加载(LDM)多寄存器存储(STM).寄存器存储器交换(SWP)5.传送指令:在任何汇编结构体系当中,传送指令是最常用最基本的指令,一般选用MOV指令,在ARM传送指令中还增加一个一种MVN:MVNconds Rd, operand2è Rd=(operand2) è数据非传送6.算术指令:包含加法(ADD,ADC)减法(SUB SBC,RSB,RSC)RSC Rd, Rn,operand2 èRd= operand2- Rn-carry è带借位逆向减法指令乘法(MUL,UMULL,SMULL)乘加(MAL,UMLAL,SMLAL)7.逻辑运算指令:包含 与(AND),或(ORR),异或(EOR),位清除(BIC)8.比较指令:CMP比较CMN负数比较TST位测试CMP相等 影响标志位N,Z,C,V,不保存运算结构。9.分支指令:B (PC=label)BL (LR=PC-4,PC=labelLR保存PC-4),BX(PC=lable,切换处理器状态根据Rm最地位切换处理器状态10.协处理器指令:CDP cond coproc, opcode1, CRd, CRn, CRm ,opcode2 条件码 协处理器名 特定操作码 目标寄存器 源寄存器 第二源 可选特定操作码CDP P7, 0, C0, C2, C3, 0 11.杂项指令:SWI(软中断指令)MRS(读状态寄存器)MSR(写状态寄存器)12.伪指令:ADR ADRL LDR 将小中大范围的 某地址值读入某寄存器 NOP空操作伪指令,用于延时明日计划 公司清理杂物,整理清扫公司环境长沙天野电子科技有限公司詹剑峰学习工作总结日期:2011年5月10日 星期:星期二内容简介上午公司清理杂物,整理清扫公司环境下午 公司清理杂物,整理清扫公司环境总结体会清理公司杂物,整理清扫公司环境明日计划 学习ARM 16位指令体系Thumb指令,并分析一些有关ARM,与thumb指令的相关例题,加强熟练程度。长沙天野电子科技有限公司詹剑峰学习工作总结日期:2011年5月11日 星期:星期三内容简介上午 学习thumb指令下午 学习装机,下午转移住宿地点,适应新的住宿条件。总结体会 ARM学习体会:1. Thumb指令集与ARM指令集的区别只有B指令可条件执行单寄存器访问指令,智能操作R0R7LDM和STM指令可对R0R7的任何子集进行操作分支指令跳转具有更多的限制数据处理指令的操作结果必需放入其中一个2. Thumb单寄存器访问指令-立即数偏移寻址LDR Rd,Rn,#immed_5*4è加载内存中的字数据到寄存器RdLDRH Rd,Rn,#immed_5*2è加载内存中的半字数据到寄存器Rd中LDRB Rd,Rn,#immed_5*1è加载内存中的字节数据到寄存器Rd中STR Rd,Rn,#immed_5*4è将Rd中的字数据存储到指定的内存中去STRH Rd,Rn,#immed_5*2è将Rd中的低16位半字数据存储到指定内存中去STRB Rd,Rn,#immed_5*1è将Rd中的低8位字节数据存储到指定的内存中去3. Thumb单寄存器访问指令-寄存器偏移寻址(R0R7)LDR Rd,Rn,Rmè加载内存中的字数据到寄存器Rd中LDRH Rd,Rn, Rmè加载内存中的半字数据到寄存器Rd中LDRB Rd,Rn, Rmè加载内存中的字节数据到寄存器Rd中STR Rd,Rn, Rmè将Rd中的字数据存储到指定的内存中去STRH Rd,Rn, Rmè将Rd中的低16位半字数据存储到指定的内存中去STRB Rd,Rn, Rmè将Rd中的低8位字节数据存储到指定的内存中去5. Thumb单寄存器访问指令-相对偏移指令编码(R0R7)LDR Rd,PC,#immed_8*4è加载pc+#immed_8*4到寄存器Rd中LDR Rd,labelè加载label地址上的字数据到寄存器Rd中LDR Rd,SP, #immed_8*4è加载SP+#immed_8*4的字数据到寄存器Rd中STR Rd,SP, #immed_8*4è将Rd中的字数据存储到指定SP+#immed_8*4中6. Thumb单寄存器访问指令-寄存器入栈及出栈指令PUSH reglist ,LR reglist,LR入栈 PUSH R0-R7 ,LRPOP reglist ,PC reglist,PC入栈 POP R0-R7 ,PC7. Thumb多寄存器访问指令 (R0R7)LDMIA Rn!,reglistSTMIA Rn!,reglist明日计划 继续学习Thumb指令。 长沙天野电子科技有限公司詹剑峰学习工作总结日期:2011年5月12日 星期:星期四内容简介上午继续学习Thumb指令下午 接收任务,管理并登记公司设备(电脑和物柜)总结体会ARM学习体会:1. Thumb数据处理指令-传送指令MOV Rd, Rm èRd=Rm (R0R15)è(R0R7)影响N,Z,清零C,V MVN Rd, Rm è Rd=(Rm) (R0R7)è影响N,Z NEG Rd, Rm è Rd=(-Rm) (R0R7)è影响N,Z,C,V2. Thumb数据处理指令-算数指令ADD/SUB Rd,Rn,RmADC/SBC Rd,Rm (R0R7)带进位加、减MUL Rd,Rm (R0R7)3. Thumb数据处理指令-逻辑运算指令AND Rd,Rm (R0R7)ORR Rd,Rm (R0R7)EOR Rd,Rm (R0R7)BIC Rd,Rm (R0R7)Rd=(Rd&Rm) 相应位清除指令4. Thumb数据处理指令-比较指令CMP Rn,Rm 减法影响标志位CMP Rn,#epr CMN Rn,Rm 加法影响标志位TST Rn,Rm 位与影响标志位5. Thumb分支指令6. Thumb杂项指令SWI #exper8SWI 1 ;软中断,中断立即数为0SWI 0x55 ;软中断,中断立即数为0x557. Thumb伪指令伪指令将基于PC相对偏移的地址值读取到寄存器中。LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器NOP伪指令在汇编时将被替换成一条Thumb空操作的指令。明日计划学习汇编语言第12章 内中断4长沙天野电子科技有限公司詹剑峰学习工作总结日期:2011年5月13日 星期:星期五内容简介上午登记完公司的所有设备(计算机和物柜),制定登记表格,和设备申请表格。下午学习汇编语言第12章 内中断总结体会汇编语言学习:开始学习汇编语言第12章 内中断,了解其概念,产生,及相关的处理过程,对PC内中断有个清晰的认识。1.中断:CPU不再接着向下执行,而转去处理中断信息,所谓中断信息就是由CPU内部产生或有外部传送的,可立即对接收的信息进行处理。2.内外中断:CPU为界,cpu内部产生,和cpu外部传送的中断,先分析内部中断,内中断的四种情形:除法错误,单步执行,执行into指令,执行int指令。3.中断类型码:用于标识中断信息的来源。为一个字节数据,即256中编码,内部中断典型的类型码,除法指令:0,单步执行:1,执行into:4,执行int指令,该指令格式为 int n,n为提供给CPU中断类型码。4.中断向量表:8位中断类型码,通过中断向量表找到相应中断处理程序的入口地址,用于中断类型嘛与中断处理程序的入口地址一一对应,相应成表。表项占两个字,高地址字存放段地址,低地址存放偏移地址。从0000:0000开始存放。5.中断处理过程:(1) 取得中断类型码N;(2) Pushf 标志寄存器的值入栈(3) TF=0,IF=0 用于避免单步执行进入死循环(4) Push CS(5) Push IP(6) (IP)=(N*4),(CS)=(N*4+2) 读取入口地址,设置IP,CS6.中断处理程序: (1)保存用到的寄存器 (2)处理中断 (3)恢复用到的寄存器 (4)用iret指令返回(功能等价: pop IP pop CS popf) 明日计划 总结本周学习工作。为下周学习工作制定计划日期:2011年5月14日 星期:星期六内容简介上午总结本周学习工作。为下周学习工作制定计划下午 放假返校!总结体会本周总结:由于客观原因未能完成预期的学习任务,这周忙于公司杂物清理,住宿搬家,新任务的分配,致使学习时间减少,是学习滞后,希望在下周得到改善。本周除了完成上述杂事外,ARM学习上完成了ARM指令体系的熟悉,及Thumb指令的学习,但还有待熟练。在汇编语言方面本周只学习了第12章内部中断,了解了内部中断原理,并操作完成0号除法溢出中断的程序理解。下周计划 下周三要请假回学校学习,其他时间用于完成汇编语言的学习,并练习熟悉汇编编写习惯和编写思想,同时进一步理解ARM及thumb指令体系的运用,学习和理解相关的程序。