清华MSP430课件第5章MSP430汇编语言幻灯片.pptVIP

  • 20
  • 0
  • 约2.38万字
  • 约 82页
  • 2018-03-27 发布于广东
  • 举报

清华MSP430课件第5章MSP430汇编语言幻灯片.ppt

NAME lookup_table RSEG CONST table DW addsubr , subsubr , clrsubr RSEG CODE addsubr ADD R4 , R5 RET subsubr SUB R4 , R5 RET clrsubr CLR R4 RET END 两个可重定位的段 汇编语言程序设计 设计步骤 分析实际问题(专业知识) 确定解决问题的方法(专业知识+计算机知识) 设计算法(如程序流程图) 按流程图编写程序 上机调试,运行程序 第二节 汇编语言程序设计举例 二进制数→压缩BCD码转换 B3 B2 B1 B0 千 百 十 个 高字节 低字节 压缩BCD码 byte 二进制数 255 D7 D0 …… X= D7*2 +D6*2 +D5*2 +D4*2 +D3*2 +D2*2 +D1*2 +D0 =(((((((D7)*2 +D6)*2 +D5)*2 +D4)*2 +D3)*2 +D2)*2 +D1)*2 +D0 7 6 5 4 3 2 1 十进制加法指令 DADD(.B) src , dst CLR R6 RLA.B R4 ;逻辑左移1位,D7-C DADD R6 , R6 ; R6=R6+R6+D7= (R6)*2 +D7=D7 RLA.B R4 ;逻辑左移1位,D6-C DADD R6 , R6 ; R6= ((R6)*2 +D7)*2 +D6 = (D7)*2 +D6 RLA.B R4 ;逻辑左移1位,D5-C DADD R6 , R6 ; R6= (((R6)*2 +D7)*2 +D6)*2 +D5 = ((D7)*2 +D6)*2 +D5 RLA.B R4 ;逻辑左移1位,D4-C DADD R6 , R6 ; R6= (((D7)*2 +D6)*2 +D5)*2 +D4 RLA.B R4 ;逻辑左移1位,D3-C DADD R6 , R6 ; R6= ((((D7)*2 +D6)*2 +D5)*2 +D4)*2 +D3 RLA.B R4 ;逻辑左移1位,D2-C DADD R6 , R6 ; R6= (((((D7)*2 +D6)*2 +D5)*2 +D4)*2 +D3)*2 +D2 RLA.B R4 ;逻辑左移1位,D1-C DADD R6 , R6 ; R6= ((((((D7)*2 +D6)*2 +D5)*2 +D4)*2 +D3)*2 +D2)*2 +D1 RLA.B R4 ;逻辑左移1位,D0-C DADD R6 , R6 ; R6= (((((((D7)*2 +D6)*2 +D5)*2 +D4)*2 +D3)*2 +D2)*2 +D1)*2 +D0 例1:byte→压缩BCD码子程序设计 ;将R4低字节中8bit二进制数 ;转换为压缩BCD码, ;结果存放在R7(B2)和R6(B1 , B0)中 W_BCD MOV #8 , R15 CLR R7 ;MOV #0 , R7 CLR R6 LOOP RLA.B R4 ;逻辑左移1位,MSB-C DADD R6 , R6 ;十进制加法:R6=R6+R6+C DADD R7 , R7 ;十进制加法:R7=R7+R7+C DEC R15 JNZ LOOP RET B3 B2 B1 B0 十万 万 千 百 十 个 高字节 中字节 低字节 压缩BCD码 word 二进制数 高字节 低字节 65535 B5 B4 例2:word→压缩BCD码子程序设计 ;将R4中16bit二进制数 ;转换为压缩BCD码, ;结果存放在R7(高4位)和R6(低4位)中 W_BCD MOV #16 , R15 CLR R7 CLR R6 LOOP RLA R5 DADD R6 , R6 DADD R7 , R7 DEC R15 JNZ LOOP RET 例3:32bit二进制数→压缩BCD码子程序设计 ;将R5(高16位)和R4(低16位)中32bit二进制数 ;转换为压缩BCD码,结果存放在R8(高4位) ;R7(中4位)和R6(低4位)中 DW_BCD MOV #32 , R15 CLR R8 CLR R7 CLR R6 L

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档