版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 内内 容容 提提 要要概述概述伪指令伪指令汇编语言程序设计步骤汇编语言程序设计步骤顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计位操作程序设计位操作程序设计子程序子程序小结小结第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 4.1 4.1 概述概述 MCS-51单片机的编程语言可以是单片机的编程语言可以是汇编语言汇编语言也可以也可以是是高级语言高级语言(如(如C语言),语言),高级语言编程快捷,但程高级语言编
2、程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能计算机的硬件功能。无论是高级语言还是汇编语言,。无论是高级语言还是汇编语言,源程序源程序都要转换成都要转换成目标程序目标程序(机器语言)单片机才能(机器语言)单片机才能执行。执行。 第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 连接连接/定位器定位器L51汇编语言汇编语言源程序源程序汇编器汇编器A51符号转换程序符号转换程序OHS51绝对地址绝对地址目标程序目标
3、程序 .BINC语言程序语言程序浮浮动动地地址址目目标标程程序序编译器编译器C51 HEX图图 4-1 两种语言源程序转换成目标程序两种语言源程序转换成目标程序第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 目前很多公司将编辑器、汇编器、编译器、连接目前很多公司将编辑器、汇编器、编译器、连接/ /定位定位器、符号转换程序做成集成软件包,用户进入该集成环境,器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如如WAVEWAVE、 KEIL KEIL ,WAVEWAVE集
4、成软件的使用见附录。集成软件的使用见附录。汇编汇编:将汇编语言:将汇编语言源程序源程序转换成机器语言转换成机器语言目标目标程序的过程序的过程称为程称为汇编汇编。 汇编程序汇编程序:能将汇编语言:能将汇编语言源程序源程序转换成机器语言转换成机器语言目标目标程序的系统软件称为程序的系统软件称为汇编程序汇编程序。第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 源程序源程序 目标程序目标程序 低级语言低级语言机器语言机器语言汇编汇编高级语言高级语言机器语言机器语言编译编译反汇编反汇编反编译反编译第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 汇编的方法汇编的
5、方法:汇编的方法有两种:汇编的方法有两种1.手工汇编手工汇编:之前之前 人工查指令表,查出程序中每条指令对应的机人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。器代码。早期的计算机使用。2. .机器汇编机器汇编:现在现在 用计算机中的汇编程序对用户源程序进行汇编。用计算机中的汇编程序对用户源程序进行汇编。 用机器汇编要提供给汇编一些信息,遵循汇编程用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。序的一些约定。这些由伪指令指定。第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1)确定程序中每条汇编语言指令的指令机器码确定程序中每条
6、汇编语言指令的指令机器码2)确定每条指令在存储器中的存放地址确定每条指令在存储器中的存放地址3)提供错误信息提供错误信息4)提供目标执行文件提供目标执行文件(*.OBJ/*.HEX)和列表文件和列表文件(*.LST) 地址地址 机器码机器码源程序源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,R0 第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1. 机器指令机器指令:指令系统中的全部指令。每条机器指令都:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被有对应的机器代码,可以被CPU执行。执
7、行。2. 伪指令伪指令: 汇编控制指令,没有指令代码,只用于汇编汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。过程,为汇编程序提供汇编信息。一、汇编语言指令类型一、汇编语言指令类型 宏汇编功能:将需要反复多次执行的程序段定义成一个宏宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。代被定义的程序段(宏调用)。4.2 伪指令伪指令第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 宏定义过程宏定义过程:宏调用过程:宏调用过程:
8、 宏指令名宏指令名 实际参数实际参数 宏指令名宏指令名 实际参数实际参数宏指令名宏指令名 MACRO 形式参数形式参数 ;被定义的程序段;被定义的程序段 ENDM第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 二伪指令二伪指令 常用伪指令及功能:常用伪指令及功能:1.起始指令起始指令 ORG nn功能:定义程序或数据块的起始地址。功能:定义程序或数据块的起始地址。指示此语句后面的程序指示此语句后面的程序或数据块或数据块以以nn为起始地址为起始地址,连续存放连续存放在在程序存储器程序存储器中。中。 指令地址指令地址 机器码机器码源程序源程序 ORG 2000H 2000H
9、78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0 ORG 3000H 3000H 23 TAB: DB 23H,100,A 3001H 64 3002H 41第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 2.字节定义字节定义 标号:标号: DB(字节常数,(字节常数,或字符或表达式)或字符或表达式)功能:功能:指示在指示在程序存储器中程序存储器中以以标号为起始地标号为起始地址址的单元里的单元里存放的数为字节数据存放的数为字节数据(八位二进(八位二进制数)。制数)。例如例如 LN:DB 32,C,25H,-1;LNLN+2 地址单元依次存放
10、地址单元依次存放20H , 43H , 25H ,FFH地址地址 数据数据LN20LN+143LN+225LN+3FF3. 字定义字定义 标号:标号:DW (字常数或表达式(字常数或表达式)作用:作用: 指示指示在程序存储器中在程序存储器中以以标号为起始地址标号为起始地址的单元里的单元里存放的数为字数据存放的数为字数据(即(即16位的二进制数),位的二进制数),例如:例如:GH :DW 1234H,5678H,08GH1234GH+25678GH+40008第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 5. 等值指令等值指令 标号标号 EQU(数值表达式)(数值表达式)
11、 表示表示EQU两边的量等值,用于为标号或标识符赋值。两边的量等值,用于为标号或标识符赋值。例如:例如: X1 EQU 2000H X2 EQU 0FH MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH4保留字节保留字节 标号:标号:DS (数值表达式)(数值表达式)作用:作用: 指示指示在程序存储器中保留以标号为起始地在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定址的若干字节单元,其单元个数由数值表达式指定。例如例如 L1:DS 32 ; 从从L1地址开始保留地址开始保留32个存储单元。个存储单元。第第4章章
12、 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 6. 位定义位定义 标号标号 BIT 位地址位地址 作用:作用: 同同EQU指令,不过定义的是位操作地址。指令,不过定义的是位操作地址。例如例如 AIC BIT P1.1。7.汇编结束汇编结束 END作用:作用: 指示源程序段结束。指示源程序段结束。 END指令放在程序的最后。指令放在程序的最后。第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 汇编语言程序设计步骤汇编语言程序设计步骤一一. .确定方案和计算方法确定方案和计算方法二二. .了解应用系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三. .建
13、立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四. .合理分配存储器单元和了解合理分配存储器单元和了解I/O接口地址接口地址五五. 编制源程序编制源程序1.按功能设计程序,明确各程序之间按功能设计程序,明确各程序之间的相互关系的相互关系2. 用流程图表示程序结构和功能用流程图表示程序结构和功能开始开始1 YN?3.程序中用注释说明指令在程序中的程序中用注释说明指令在程序中的作用,方便阅读、调试和修改作用,方便阅读、调试和修改第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 -编写规范编写规范第第4章章 MCS-51单片机汇编语言程序设计单片
14、机汇编语言程序设计 -源程序汇编源程序汇编第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 4.3 顺序程序设计顺序程序设计顺序程序顺序程序( (简单程序简单程序) ),程序走向只有一条路径,程序走向只有一条路径例例4-2:将:将R4R5双字节符号数求补程序。双字节符号数求补程序。 ORG 0000H MOV A,R5 ;取低字节;取低字节 CPL A ADD A,#1 ;低字节变补;低字节变补 MOV R5,A MOV A,R4 ;取高字节;取高字节 CPL A ADDC A,#0 ;高字节变补;高字节变补 ORL A, #80H; 恢复负号恢复负号 MOV R4,A E
15、ND第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例4-3 分解压缩式分解压缩式BCD码码,使其成为非压缩式使其成为非压缩式BCD码。码。ORG 0000HMOV R0,#40H;设指针;设指针MOV A,R0;取一个字节;取一个字节MOV R2,A;暂存;暂存ANL A,#0FH;清;清0高半字节高半字节INC R0MOV R0,A ;保存数据个位;保存数据个位片内片内RAM42H41H40H65MOV A,R2SWAP A ;十位换到低半字节;十位换到低半字节ANL A,#0FHINC R0MOV R0,A;保存数据十位;保存数据十位END05050606第第4章
16、章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 地址数据TAB0TAB+11TAB+24TAB+39TAB+416HTAB+525H例例4-4 设变量放在片内设变量放在片内RAM的的20H单元单元,其值为其值为00H05H之间之间,要求编查表程序要求编查表程序,查出变量的平方值查出变量的平方值, 并放入片内并放入片内RAM的的21H单元。单元。 ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR ;查表查表 MOV 21H,A SJMP $TAB2: DB 00H,01H,04H,09H,16H,25H END分析分析 :在程序存储器安
17、排一张平方表,首地址为:在程序存储器安排一张平方表,首地址为TAB,以以DPTR指向表首址,指向表首址,A存放变量值,利用查表指令存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。,即可求得。表中数据用表中数据用BCD码存放合乎人们的习惯码存放合乎人们的习惯. 如果平方值为两个字节,程序应如何编。如果平方值为两个字节,程序应如何编。DPTRA第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H ORG 0000H MOV A,R2 JNB ACC.7,N ;为正数?;为正数? CPL A ;负数变补;负数变补 INC A MOV R2,AN: S
18、JMP $ ;结束;结束 4.4 4.4 分支程序的设计分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构由条件转移指令构成程序判断框部分,形成分支结构3.5.1 3.5.1 单分支程序单分支程序一个判断决策框,两种分支结构图。一个判断决策框,两种分支结构图。条件满足条件满足?N影响条件影响条件Y处理段处理段条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2例例1 1 求求8 8位有符号数的绝对值。位有符号数的绝对值。方法:正数不变,负数变补方法:正数不变,负数变补第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例2 用单片机加重力传感器作磅秤,秤出
19、重量后算出行李运费用单片机加重力传感器作磅秤,秤出重量后算出行李运费价格,其秤出的重量以价格,其秤出的重量以10kg为为1个计价单位个计价单位G , G已存入已存入40H单元。单元。计价方法计价方法为为50kg以内按以内按3元元, 50kg以上以上分段计价分段计价: 50kg按按3元计价元计价,超过部分按,超过部分按2元计价。元计价。 由此列出算式:由此列出算式: G3 + (G-5)2; 当当G5M=G3 ;当;当G5 3G因重复使用,先暂存在因重复使用,先暂存在R2。流程。流程见左见左, 程序如下:程序如下:第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 01
20、00HFRT: MOV A,40H;取行李重量计价单位;取行李重量计价单位G MOV R3,A MOV B,#03H;运费;运费M=G3 MUL AB MOV R2,A;暂存;暂存3G MOV A,R3;取回;取回G CJNE A,#05H,L1;G 5 ? SJMP WETCL1: JC WETC;是,转至;是,转至WETC SUBB A,#05H;否则;否则 M=3G+2(G-5) RLC A ADD A,R2 MOV R2 ,AWETC:MOV 41H,R2 ;存运费;存运费 M RET第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 多分支散转程序的设计多分支散转程
21、序的设计 有一类分支程序有一类分支程序,它根据不同的输入条件或不同的运算结果它根据不同的输入条件或不同的运算结果,转向不同的处理程序转向不同的处理程序,称之为散转程序。这类程序通常利用称之为散转程序。这类程序通常利用JMPA+DPTR间接转移指令实现转移。有如下两种设计方法:间接转移指令实现转移。有如下两种设计方法: 1. 查转移地址表查转移地址表: 将将转移地址转移地址列成表格,将表格的内容作转移的目标地址。列成表格,将表格的内容作转移的目标地址。 2. 查转移指令表查转移指令表: 将转移到不同程序的将转移到不同程序的转移指令转移指令列成表格,判断条件后查表,列成表格,判断条件后查表,转到表
22、中指令执行转到表中指令执行,下面用两个例子说明。下面用两个例子说明。第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1. 利用转移地址表实现转移利用转移地址表实现转移 例例4-7 根据根据R3的内容转向对应的程序,的内容转向对应的程序,R3的内容为的内容为0n,处处理程序的入口符号地址分别为理程序的入口符号地址分别为PR0PRn (n128)。分析:将分析:将PR0PRn入口地址列在表格中,每一项占两个单入口地址列在表格中,每一项占两个单元,元,PRn在表中的偏移量为在表中的偏移量为2n,因此将,因此将R3的内容乘的内容乘2即得即得PRn在表中的偏移地址,从偏移地址在表中
23、的偏移地址,从偏移地址2n和和2n+1两个单元分两个单元分别取出别取出PRn的高八位地址和低八位地址送的高八位地址和低八位地址送DPTR寄存器,寄存器,用用JMP A+DPTR指令(指令(A先清零)即转移到先清零)即转移到PRn入口执入口执行。行。第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000HMOV A,R3 ;R3AADD A,ACC ;A*2MOV DPTR,#TABPUSH ACCMOVC A,A+DPTR ;取地址表中高字节取地址表中高字节MOV B,A ;暂存于暂存于BINC DPLPOP ACCMOVC A,A+DPTR ;取地址表中低字节
24、取地址表中低字节MOV DPL,AMOV DPH,B ;DPTR为表中地址为表中地址CLR A ;A=0JMP A+DPTR ;转移转移TAB:DW PR0,PR1,PR2,.,PRn ;转移地址表转移地址表END01100220.TABTAB+2DPH DPL例如例如 R3=1的操作的操作0220第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 2. 利用转移指令表实现转移利用转移指令表实现转移 例例4-8 设有五个按键设有五个按键 0、1、2、3、4其编码分别为其编码分别为3AH、47H、65H、70H、8BH,要求根据按下的键转向不同的处,要求根据按下的键转向不同的处
25、理程序,分别为理程序,分别为PR0 、PR1 、PR2、PR3、PR4,设按键,设按键的编码已在的编码已在B寄存器中,编出程序。寄存器中,编出程序。分析分析: 将键码排成表,将键码表中的值和将键码排成表,将键码表中的值和B中的键编码比对,中的键编码比对,记下在键码表中和记下在键码表中和B中的键编码相等的序号,另安排一个转移中的键编码相等的序号,另安排一个转移表表,安排安排AJMP指令指令(机器码机器码),因每条,因每条AJMP指令占二字节,将指令占二字节,将刚才记下的序号乘刚才记下的序号乘2即为转移表的偏移地址,利用即为转移表的偏移地址,利用JMP A+DPTR执行表内的执行表内的AJMP指令
26、,从而实现多分支转移,指令,从而实现多分支转移, 设设JPT的地址为的地址为001AH、PR0入口地址为入口地址为0110H、 ,参考,参考2.4.2节,求节,求AJMP PR0的机器码的机器码0000 0001 0001 0000 001 00001 0000 (2110h )a10a9a8a7a6a5a4a3a2a1a0 第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 AJMP PR0的机器码为的机器码为2110H, PR1入口地址为入口地址为0220H AJMP PR1的机器码为的机器码为4120H, 转移指令表转移指令表JPT的内容如下所示。的内容如下所示。设设B
27、=65H,键值为键值为2:2041 JPT+42002 JPT+21021 JPTAJMP PR0AJMP PR1AJMP PR2TAB3AHTAB+147HTAB+265HTAB+370H转移指令表转移指令表JPT键码表键码表TAB65HAB2AA=1A=2A=065H65H第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H MOV DPTR,#TAB ;置键码表首址置键码表首址 MOV A,#0 ;表的起始位的偏移量为表的起始位的偏移量为0 NEXT: PUSH ACC MOVC A,A+DPTR ;A=键码表的编码键码表的编码 CJNE A,B,AG
28、AN ;将将B中值和键码表的值比较中值和键码表的值比较 POP ACC RL A ;如相等如相等,序号乘序号乘2得分支表内偏移量得分支表内偏移量 MOV DPTR,#JPT ;置分支表首址置分支表首址 JMP A+DPTR AGAN: POP ACC ;不相等比较下一个不相等比较下一个 INC A ;序号加序号加1 CJNE A,#5,NEXT SJMP $ ;键码查完还没有键码查完还没有B中按键编码程序结束中按键编码程序结束 JPT: AJMP PR0 ;分支转移表分支转移表 AJMP PR1 AJMP PR2 AJMP PR3 AJMP PR4 TAB: DB 3AH,47H,65H,70
29、H,8BH ;键码表键码表 END第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 当程序中的某些指令需要反复执行多次时,采用循环程当程序中的某些指令需要反复执行多次时,采用循环程序的方式,这样会序的方式,这样会使程序缩短,节省存储单元(并不节省使程序缩短,节省存储单元(并不节省执行时间)。执行时间)。 循环次数的控制,有两种控制方式循环次数的控制,有两种控制方式:第一种方法第一种方法 先判断再处理即先判断满不满足循环条件,如不满足,先判断再处理即先判断满不满足循环条件,如不满足,就不循环,多以循环条件控制。就不循环,多以循环条件控制。第二种方法第二种方法 先处理再判断,即
30、循环执行一遍后,下一轮还需不需要先处理再判断,即循环执行一遍后,下一轮还需不需要进行,多以计循环次数控制。循环可以有单重循环和多重进行,多以计循环次数控制。循环可以有单重循环和多重循环,在多重循环中,内外循环不能交叉,也不允许外循循环,在多重循环中,内外循环不能交叉,也不允许外循环跳入内循环。下面通过几个实例说明循环程序的设计方环跳入内循环。下面通过几个实例说明循环程序的设计方法。法。4.5 循循 环环 程程 序序 设设 计计第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例 4-9 设计一个延时设计一个延时10ms的延时子程序,已知单片机使用的的延时子程序,已知单片机
31、使用的晶振为晶振为12MHz。分析分析 : 延时时间与两个因素有关延时时间与两个因素有关:晶振频率和循环次数。由于晶振频率和循环次数。由于晶振采用晶振采用12MHz,一个机器周期是,一个机器周期是1s,用单循环可以实现,用单循环可以实现1ms延时,外循环延时,外循环10次即可达次即可达10ms延时。延时。 内循环如何实现内循环如何实现1ms延时呢,程序中可先以未知数延时呢,程序中可先以未知数MT代代替,从附录替,从附录A查每条指令机器周期计算程序的执行时间。查每条指令机器周期计算程序的执行时间。 第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0020H MOV
32、R0,#0AH ;外循环;外循环10次次 DL2: MOV R1,#MT ;内循环;内循环MT次次 DL1: NOP NOP ;空操作指令;空操作指令 DJNZ R1,DL1 DJNZ R0,DL2 RET内循环内循环DL1到指令到指令DJNZ R1,DL1的计算:的计算: (1+1+2)1SMT=1000S =TN MT=250=0FAH(TN+1+2) 101S =10030S=10.03mS若需要延时更长时间,可以采用多重循环。若需要延时更长时间,可以采用多重循环。内内外外第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 MCS-51单片机有着优异的位逻辑功能单片机有
33、着优异的位逻辑功能,可以方便的实现可以方便的实现各种复杂的逻辑运算各种复杂的逻辑运算.这种用软件替代硬件的方法这种用软件替代硬件的方法,可以大可以大大简化甚至完全不用硬件大简化甚至完全不用硬件,但比硬件要多花运算时间。但比硬件要多花运算时间。例例4-17 编写一程序编写一程序,以实现图以实现图4-4中的逻辑运算电路中的逻辑运算电路.4.6 位操作程序设计位操作程序设计第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 P1.311&1P1.1P2.2TF0IE125H(位)26H(位) 其中其中P1.1和和P2.2分别是端口线上的信息分别是端口线上的信息,TF0和和I
34、E1分别是分别是定时器定时溢出标志和外部中请求标志定时器定时溢出标志和外部中请求标志, 25H和和26H分别是两个分别是两个位地址位地址, 运算结果由端口线运算结果由端口线P1.3输出。输出。 图图3-4 硬件逻辑运算电路硬件逻辑运算电路第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 程序如下:程序如下:START:MOV C,P2.2 ORL C,TF0 ANL C,P1.1 MOV F0,C MOV C,IE1 ORL C,/25H ANL C,F0 ANL C,/26H MOV P1.3,C SJMP $第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程
35、序设计 子程序是构成单片机应用程序必不可少的部分,通过子程序是构成单片机应用程序必不可少的部分,通过ACALL和和LCALL两条子程序调用指令两条子程序调用指令,可以十分方便地,可以十分方便地用来调用任何地址处的子程序。用来调用任何地址处的子程序。 子程序节省占用的存储单元,使程序简短、清晰,善子程序节省占用的存储单元,使程序简短、清晰,善于灵活的使用子程序,是程序设计的重要技巧之一。于灵活的使用子程序,是程序设计的重要技巧之一。 子程序必须子程序必须以以RET指令结尾指令结尾. 在调用子程序时,有以下几点应在调用子程序时,有以下几点应注意注意:4.7 子程序子程序 当一段程序需多次应用当一段
36、程序需多次应用,或为多人应用时或为多人应用时,这段程序编为这段程序编为子子程序程序.第第4章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1)保护现场保护现场。 如果在调用前主程序已经使用了某些存储单元或寄存器,在调用时,如果在调用前主程序已经使用了某些存储单元或寄存器,在调用时,这些寄存器和存储单元又有其他用途,就应先把这些单元或寄存器这些寄存器和存储单元又有其他用途,就应先把这些单元或寄存器中的内容压入堆栈保护,调用完后再从堆栈中弹出以便加以恢复。中的内容压入堆栈保护,调用完后再从堆栈中弹出以便加以恢复。如果有较多的寄存器要保护,应使主、子程序使用不同的寄存器组。如果有较多的寄存器要保护,应使主、子程序使用不同的寄存器组。 2)设置入口参数和出口参数。设置入口参数和出口参数。 用之前主程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政治学研究新进展及展望
- 2026及未来5年中国多宝鱼养殖行业市场全景调研及发展前景研判报告
- 动态监测系统对种植体存留率的影响分析
- 动态支架血管化促进再生
- 制剂剂型分类与辅料配伍禁忌指南
- 宫颈癌护理中的沟通技巧与伦理考量
- 创新思维导向的PBL问题解决教学
- 创伤评分可视化在急诊医患沟通中的作用
- 分子影像引导下的肿瘤靶向治疗
- 常见病康复护理课件
- 2026年乌兰察布职业学院单招综合素质考试题库附参考答案详解(夺分金卷)
- 2026届华大新高考联盟高三上学期11月教学质量测评语文试题
- 2026年山东交通职业学院单招综合素质考试备考题库含详细答案解析
- 2025中央企业重点领域常态化安全生产督导帮扶工作方案
- 铸造生产线管理制度
- 生死观与死亡教育
- 医院药房工作人员服务礼仪与规范
- 消防安全课件幼儿园小班
- 冠脉造影标准操作流程指南
- 配网运行培训课件
- 2025至2030中国铁路联轴节行业调研及市场前景预测评估报告
评论
0/150
提交评论