微机原理及应用汇编语言程序设计基础.pptVIP

  • 54
  • 0
  • 约1.68万字
  • 约 54页
  • 2017-03-31 发布于江苏
  • 举报

微机原理及应用汇编语言程序设计基础.ppt

微机原理及应用汇编语言程序设计基础

第四章 汇编语言程序设计基础 4-1 汇编语言程序设计方法 1 程序及程序设计 程序是一系列指令的有序集合 程序设计则是编制程序的过程 2、 程序设计步骤 分析课题→确定算法和数据结构→确定操作步骤→画流程图→编制源程序→调试程序 流程图图例 起止框 处理框 判断框 连线 4-2 汇编语言程序结构 程序设计方法 结构化设计 4-2 汇编语言程序结构 4-2-1 顺序结构程序设计 顺序结构是按照指令在存储器中存放的先后顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。 特点: 程序中无转移、调用、分支、循环指令; 程序按编写的先后顺序执行,程序流向不变 PC自动加1 在实际编程中应注意 如何正确选择指令、寻址方式和合理使用工作寄存器,包括数据存储器。 数据传送和交换程序、简单运算程序、查表程序 【例4-1】拆字、拼字程序 将片内RAM 50H单元的低4位取出当作高4位,与51H单元的低4位合成一个字节后存入52H单元。 STR EQU 50H ;头文件 ORG 0000H MOV R1,#STR MOV A,@R1 ;取50H单元中的数据 ANL A,#0FH ;拆字,屏蔽高4位 SWAP A ;高、低4位互换 INC R1 ;指向51H单元 XCH A,@R1 ;51H单元内容与累加器内容互换 ANL A,#0FH ;拆字,取原51H单元的低4位 ORL A,@R1 ;拼字 INC R1 MOV @R1,A ;存结果 RET END 【例4-1】拆字、拼字程序 将片内RAM 50H单元的低4位取出当作高4位,与51H单元的低4位合成一个字节后存入52H单元。 STR EQU 50H ;头文件 ORG 0000H MOV R1,#STR ;指向50H单元 MOV A,@R1 ;取50H单元中的数据 SWAP A ;高、低4位互换 INC R1 ;指向51H单元 XCHD A,@R1 ;拆字,拼字;51H单元的低4位 ;与A的低4位内容互换 INC R1 ;指向52H单元 MOV @R1,A ;存结果 RET END 【例4-2】数制转换 将片内RAM 30H单元的无符号二进制数转换成BCD码数,结果按高低顺序依次存放到33H、32H、31H单元。 ORG 0000H HEX_D: MOV A, 30H ;取原数据数 MOV B, #10 DIV AB ;二进制数除10 MOV 31H, B ;将余数(BCD码的个位)送31H MOV B, #10 DIV AB ;商再继续除10 MOV 32H, B ;将余数(BCD码的十位)送32H MOV 33H, A ;将商(BCD码的百位)送33H RET 【例4-3】查表程序 关键在:组织具有规律性的表格 求R1中数(0~15)的平方,结果仍放回到R1中。 ORG 0000H TAB1: MOV A, R1 ADD A, #02H ;加上地址偏移量 MOVC A, @A+PC ;查表 MOV R1,A RET DB 00H, 01H, 04H, 09H ;平方表 DB 10H, 19H, 24H, 31H ;续表 DB 40H, 51H ;续表 【例4-3】查表程序 求R1中数(0~15)的平方,结果仍放回到R1中。 ORG 0000H TAB2: PUSH DPH ;保存DPTR的原值 PUSH DPL MOV DPTR, #TAB ;取平方表首地址 MOV A, R1 MOVC A, @A+DPTR ;查平方表 MOV R1, A POP DPL ;恢复DPTR的原值 POP DPH RET TAB: DB 00H, 01H, 04H, 09H ;平方表 DB 10H, 19H, 24H, 31H DB 40H, 51H 以PC为指针查表程序 输入参数:R2 输出参数:R3R4 TB1: mov A,R2 add A,R2;? mov R3,A add A,#08H;? movc A,@A+PC

文档评论(0)

1亿VIP精品文档

相关文档