文档详情

单片机汇编语言程序设计知识.pptx

发布:2020-02-21约1.56千字共53页下载文档
文本预览下载声明
4.1.1汇编语言的构成;标号;操作码;操作数;注释;伪指令;ORG 汇编起始命令;EQU 赋值命令;EQU 赋值命令;DB 定义字节命令;DB 定义字节命令;DW 定义字命令;DW 定义字命令;DS 定义存储空间命令;BIT 位地址符号命令;DATA 数据地址赋值命令;END 汇编结束指令;4.2 汇编语言源程序的编辑和汇编;§4.2.1 源程序编辑;§4.2.2 源程序的汇编;一、手工汇编;二、机器汇编;三、反汇编;源程序 (汇编语言);§4.3 编程的步骤、方法和技巧;§4.3.1 编程的步骤;一、分析问题;二、确定算法;三、画程序流程图;;§4.4 汇编语言程序的???本结构;一、顺序程序;;例2:16位数求补。设16位二进制数在R1R0中,求补结果存于R3R2中。;二、分支程序;在MCS-51指令系统中,通过条件判断实现单分支程序转移的指令有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态作为条件进行程序分支的指令,如JC、JNC、JB、JNB、JBC等。使用这些指令可以完成0、1、正、负,以及相等、不相等作为各种条件判断依据的程序转移。; 例:片内RAM ONE和TWO两个单元中存有两个无符号数,将两个数中的小者存入30H单元。;三、循环程序;1、置循环初值;2、循环体(循环工作部分);3、修改控制变量;4、循环控制部分;置初值; ; 例:已知内部RAM的BLOCK单元开始有一无符号数据块,块长在LEN单元。请编写求数据块中各数累加和并存人SUM单元的程序。; ORG 0200H LEN DATA 20H SUM DATA 21H BLOCK DATA 22H CLR A MOV R2,LEN ;块长送R2 MOV R1,#BLOCK ;块起始地址送R1 INC R2 ;R2一块长+1 SJMP CHECK LOOP:ADD A,@R1 ;A-A+(R1) INC R1 ;修改数据块指针R1 CHECK:DJNZ R2,LOOP ;若未完则转LOOP MOV SUM,A ;存累加和 SJMP $ END;查表程序;例:用查表法编一子程序,将40H单元中的BCD码转换成ASCII码。;子程序设计; ;例1:用查表法编一子程序,将40H单元中的BCD码转换成ASCII码。 入口:待转换数在(40H) 出口:转换后的数(40H) ;若将30H单元BCD码转换成ASCII码,利用SUB1子程序。;在编写子程序时应注意以下同题: (1)子程序的第一条指令地址称为子程序的起始地址或入口地址。该指令前必须有标号,标号应以子程序任务定名。 (2)主程序调用子程序是通过安排在主程序中的调用指令实现的。子程序返回主程序必须执行子程序末尾的返回指令。 (3)主程序调用于程序以及从子程序返回主程序后,计算机能自动保护并恢复主程序的断点地址。 (4)为使所编子程序可以放在64KB内存的任何子域.并能被主程序调用.子程序内部必须使用相对转移指令 (5)子程序参数可以分为人口和出口两类参散:人口参数是指于程序需要的原始参数。由调用它的主程序通过约定的工作寄存器R0~R7带殊功能寄存器SFR、内存单元或堆栈等预先传送给子程序使用;出口参数是由于程序根据入口参数执行程序后获得的结果参数,应由子程序通过约定的R0~R7、SFR、内存单元或堆栈等传递给主程序使用。
显示全部
相似文档