好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

片机汇编程序设计2课件.ppt

49页
  • 卖家[上传人]:鲁**
  • 文档编号:592135930
  • 上传时间:2024-09-19
  • 文档格式:PPT
  • 文档大小:228.50KB
  • / 49 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 3.3 汇编语言程序设计汇编语言程序设计3.3.1 3.3.1 汇编语言及其语句格式汇编语言及其语句格式汇编语言及其语句格式汇编语言及其语句格式1 1、汇编语言、汇编语言、汇编语言、汇编语言这里介绍这里介绍这里介绍这里介绍MCS-51MCS-51单片机的汇编语言单片机的汇编语言单片机的汇编语言单片机的汇编语言2 2、汇编语言的语句格式、汇编语言的语句格式、汇编语言的语句格式、汇编语言的语句格式一一一一条条条条汇汇汇汇编编编编语语语语言言言言的的的的语语语语句句句句包包包包括括括括四四四四部部部部分分分分内内内内容容容容::::标标标标号号号号、、、、操操操操作码、操作数和注释其格式为:作码、操作数和注释其格式为:作码、操作数和注释其格式为:作码、操作数和注释其格式为:标号:操作码 操作数;注释标号:操作码 操作数;注释标号:操作码 操作数;注释标号:操作码 操作数;注释 例如:例如:例如:例如:LOOP: MOV A , #20H LOOP: MOV A , #20H ;;;; (A)←20H (A)←20H 3.3.2 3.3.2 伪指令伪指令伪指令伪指令1 1、、、、定位伪指令定位伪指令定位伪指令定位伪指令格式:格式:格式:格式:ORG nORG n2 2、、、、定义字节伪指令定义字节伪指令定义字节伪指令定义字节伪指令格式:标号:格式:标号:格式:标号:格式:标号:DB X1, X2, ……XnDB X1, X2, ……Xn此伪指令的功能是把此伪指令的功能是把此伪指令的功能是把此伪指令的功能是把XiXi存入从标号开始连续的单元中。

      存入从标号开始连续的单元中存入从标号开始连续的单元中存入从标号开始连续的单元中3 3、、、、定义双字节伪指令定义双字节伪指令定义双字节伪指令定义双字节伪指令格式:标号:格式:标号:格式:标号:格式:标号:DW X1DW X1,,,,X2X2,,,,……Xn……Xn此伪指令的功能是把此伪指令的功能是把此伪指令的功能是把此伪指令的功能是把XiXi存入从标号开始的连续单元中存入从标号开始的连续单元中存入从标号开始的连续单元中存入从标号开始的连续单元中 4 4、、、、预留存贮区伪指令预留存贮区伪指令预留存贮区伪指令预留存贮区伪指令格式:格式:格式:格式:DS nDS nDS nDS n从标号指定单元开始,预留从标号指定单元开始,预留从标号指定单元开始,预留从标号指定单元开始,预留n n个单元的存贮区个单元的存贮区个单元的存贮区个单元的存贮区5 5、、、、赋值伪指令赋值伪指令赋值伪指令赋值伪指令格式:字符名称格式:字符名称格式:字符名称格式:字符名称x EQU nx EQU n此指令的功能是将数据或地址此指令的功能是将数据或地址此指令的功能是将数据或地址此指令的功能是将数据或地址n n赋给字符名称。

      赋给字符名称赋给字符名称赋给字符名称6 6、、、、结束汇编指令结束汇编指令结束汇编指令结束汇编指令格式:格式:格式:格式: END ENDENDEND指示源程序到结束,常将其放在汇编语言源指示源程序到结束,常将其放在汇编语言源指示源程序到结束,常将其放在汇编语言源指示源程序到结束,常将其放在汇编语言源程序的末尾程序的末尾程序的末尾程序的末尾 3.3.3 3.3.3 汇编语言程序设计过程汇编语言程序设计过程汇编语言程序设计过程汇编语言程序设计过程1 1、、、、分析任务,确定算法或解题思路分析任务,确定算法或解题思路分析任务,确定算法或解题思路分析任务,确定算法或解题思路2 2、、、、根据算法和解决思路画出程序流程图根据算法和解决思路画出程序流程图根据算法和解决思路画出程序流程图根据算法和解决思路画出程序流程图流程图是由一些框图和流程线组合而成:流程图是由一些框图和流程线组合而成:流程图是由一些框图和流程线组合而成:流程图是由一些框图和流程线组合而成: ` `置的框图连接在一起,位于不同框图的圈内,应置的框图连接在一起,位于不同框图的圈内,应置的框图连接在一起,位于不同框图的圈内,应置的框图连接在一起,位于不同框图的圈内,应标注相同的字母。

      标注相同的字母标注相同的字母标注相同的字母 3 3、、、、根据流程图编写程序根据流程图编写程序根据流程图编写程序根据流程图编写程序4 4、、、、上机调试程序上机调试程序上机调试程序上机调试程序3.3.4 3.3.4 顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计按按按按照照照照程程程程序序序序编编编编写写写写的的的的顺顺顺顺序序序序,,,,依依依依次次次次执执执执行行行行任任任任何何何何复复复复杂杂杂杂的的的的程程程程序,都含有较大成份的顺序结构程序序,都含有较大成份的顺序结构程序序,都含有较大成份的顺序结构程序序,都含有较大成份的顺序结构程序 【【【【例例例例3-83-8】】】】 将两位压缩将两位压缩将两位压缩将两位压缩BCDBCD码转换成二进制数码转换成二进制数码转换成二进制数码转换成二进制数编程思路:(编程思路:(编程思路:(编程思路:(a a1 1a a0 0))))BCDBCD= a= a1 1×10+a×10+a0 0编编编编程程程程说说说说明明明明::::待待待待转转转转换换换换的的的的两两两两位位位位压压压压缩缩缩缩BCDBCD码码码码存存存存放放放放于于于于R2R2,,,,转换结果存回转换结果存回转换结果存回转换结果存回R2R2。

      程序流程图如图程序流程图如图程序流程图如图程序流程图如图3-13-1所示 编程如下:编程如下:编程如下:编程如下:START: MOV A , R2START: MOV A , R2 ANL A , #0F0H ANL A , #0F0H ;取高位;取高位;取高位;取高位BCDBCD码码码码 SWAP A SWAP A MOV B , #0AH MOV B , #0AH MVL AB MVL AB MOV R3 , A MOV R3 , A MOV A , R2 MOV A , R2 ANL A , #0FH ANL A , #0FH ;取低位;取低位;取低位;取低位BCDBCD码码码码 ADD A , R3 ADD A , R3 MOV R2 , A MOV R2 , A END END 3.3.5 3.3.5 分支程序设计分支程序设计分支程序设计分支程序设计 【【【【例例例例3-93-9】】】】 求符号函数的值求符号函数的值求符号函数的值求符号函数的值 1 1 当当当当X>0X>0Y= Y= 0 0 当当当当X=0 X=0 的值。

      的值 -1 -1 当当当当X<0 X<0 编编编编程程程程说说说说明明明明::::设设设设变变变变量量量量X X存存存存放放放放在在在在40H40H单单单单元元元元中中中中,,,,函函函函数数数数Y Y存存存存放在放在放在放在41H41H单元中此程序为三分支程序此程序为三分支程序此程序为三分支程序此程序为三分支程序程序流程图如图程序流程图如图程序流程图如图程序流程图如图3-33-3所示 编程如下:编程如下:编程如下:编程如下:START: MOV ASTART: MOV A,,,,40H40H JZ COMP JZ COMP JNB ACC.7 JNB ACC.7,,,, POST POST MOV A MOV A,,,,#81H #81H ;表示;表示;表示;表示-1-1 SJMP COMP SJMP COMP POSI: MOV A POSI: MOV A,,,,#01H #01H ;表示;表示;表示;表示+1+1COMP: MOV 41HCOMP: MOV 41H,,,,A A END END 【【【【例例例例3-103-10】】】】 求单字节有符号二进制数的补码。

      求单字节有符号二进制数的补码求单字节有符号二进制数的补码求单字节有符号二进制数的补码 编程如下:编程如下:编程如下:编程如下:CMPT:CMPT:MOV A , 30H MOV A , 30H JNB ACC.7 , NCHJNB ACC.7 , NCH;(;(;(;(A A))))≥≥≥≥0 0,不需要转换,不需要转换,不需要转换,不需要转换MOV C , ACC.7MOV C , ACC.7 ;保存符号;保存符号;保存符号;保存符号MOV 10H , CMOV 10H , CCPL ACPL AADD A , #1ADD A , #1MOV C , 10HMOV C , 10HMOV ACC.7 , CMOV ACC.7 , C ;恢复符号;恢复符号;恢复符号;恢复符号NCH:NCH: ENDEND 图图图图3-53-5中,中,中,中,KK的最大值一般为的最大值一般为的最大值一般为的最大值一般为128128例例例例3-13-1￿ ￿ ￿ ￿】】】】 用单片机作四则运算用单片机作四则运算用单片机作四则运算用单片机作四则运算编编编编程程程程说说说说明明明明::::在在在在单单单单片片片片机机机机系系系系统统统统中中中中,,,,设设设设置置置置+ +、、、、----、、、、× ×、、、、÷ ÷四四四四个个个个运运运运算算算算键键键键,,,,这这这这四四四四个个个个运运运运算算算算键键键键的的的的键键键键值值值值分分分分别别别别为为为为0 0、、、、1 1、、、、2 2、、、、3 3((((键键键键值值值值存存存存放放放放在在在在寄寄寄寄存存存存器器器器(2(2中中中中)))),,,,当当当当其其其其中中中中一一一一个个个个按按按按键键键键按按按按下下下下时时时时,,,,进行相应的运算。

      进行相应的运算进行相应的运算进行相应的运算P1P1口口口口输输输输入入入入被被被被加加加加数数数数、、、、被被被被减减减减数数数数、、、、被被被被乘乘乘乘数数数数或或或或被被被被除除除除数数数数,,,,以以以以及运算结果的低及运算结果的低及运算结果的低及运算结果的低8 8位或商P3P3口口口口输输输输入入入入加加加加数数数数、、、、减减减减数数数数、、、、乘乘乘乘数数数数或或或或除除除除数数数数,,,,, ,以以以以及及及及结结结结果果果果的的的的高高高高8 8位或余数位或余数位或余数位或余数键号存放在累加器键号存放在累加器键号存放在累加器键号存放在累加器A A中程序流程图如图程序流程图如图程序流程图如图程序流程图如图3-63-6所示 参考程序如下:参考程序如下:参考程序如下:参考程序如下:START: MOV P1 , #0FFHSTART: MOV P1 , #0FFH MOV P3 , #0FFH MOV P3 , #0FFH MOV DPTR, #TABLE MOV DPTR, #TABLE CLR C CLR C MOV A, R2 MOV A, R2 SUBB A,#04H SUBB A,#04H JNC ERROR JNC ERROR ADD A , #0-4H ADD A , #0-4H CLR C CLR C RL A RL A ;正确的散转偏移号,键号;正确的散转偏移号,键号;正确的散转偏移号,键号;正确的散转偏移号,键号×2×2 JMP @A+DPTR JMP @A+DPTR TABLE: AJMP PRG0 TABLE: AJMP PRG0 AJMP PRG1 AJMP PRG1 AJMP PRG2 AJMP PRG2 AJMP PRG3 AJMP PRG3 ERROR: ( ERROR: ( 错误处理错误处理错误处理错误处理) ) PRG0: MOV A PRG0: MOV A,,,,P1P1 ADD A ADD A,,,,P3P3 MOV P1 MOV P1,,,,A A CLR A CLR A ADDC A ADDC A,,,,#00H#00H;进位位放入;进位位放入;进位位放入;进位位放入A A中中中中 MOV P3 MOV P3,,,,A A RET RET PRG1: MOV A PRG1: MOV A,,,,P1P1 CLR C CLR C SUBB A SUBB A,,,,P3P3 MOV P1 MOV P1,,,,A A CLR A CLR A RLC A RLC A ;借位放入;借位放入;借位放入;借位放入A A中中中中 MOV P3 MOV P3,,,,A A RET RET PRG2: MOV A PRG2: MOV A,,,,P1P1 MOV B MOV B,,,,P3P3 MUL AB MUL AB MOV P1 MOV P1,,,,A A MOV P3 MOV P3,,,,B B RET RET PRG3: MOV A PRG3: MOV A,,,,P1P1 MOV B MOV B,,,,P3P3 DIV AB DIV AB MOV P1 MOV P1,,,,A A MOV P3 MOV P3,,,,B B RET RET 【【【【例例例例3-123-12】】】】已已已已知知知知内内内内存存存存单单单单元元元元有有有有1616个个个个二二二二进进进进制制制制无无无无符符符符号号号号数数数数,,,,分分分分别别别别存存存存放放放放在在在在30H30H~~~~3FH3FH中中中中,,,,试试试试求求求求它它它它们们们们的的的的累累累累加加加加和和和和,,,,并并并并将将将将其其其其和数存放在和数存放在和数存放在和数存放在R4R4、、、、R5R5中。

      中编程说明:存放编程说明:存放编程说明:存放编程说明:存放1616个二进制无符号数的首地址为个二进制无符号数的首地址为个二进制无符号数的首地址为个二进制无符号数的首地址为30H30H,此循环程序的循环次数为,此循环程序的循环次数为,此循环程序的循环次数为,此循环程序的循环次数为1616次,和数放在次,和数放在次,和数放在次,和数放在R4R4、、、、R5R5中程序流程如图中程序流程如图中程序流程如图中程序流程如图3-83-8 参考程序如下:参考程序如下:START: MOV R0 ,#30H MOV R2 , #10H MOV R4 , #00H MOV R5 , #00H LOOP: MOV A , R5 LOOP: MOV A , R5 ADD A , @R0 ADD A , @R0 MOV R5 , A MOV R5 , A MOV A , #00H MOV A , #00H ADDC A , R4 ADDC A , R4 MOV R4 , A MOV R4 , A INC R0 INC R0 DJNZ R2 , LOOP DJNZ R2 , LOOP END END 【【【【例例例例3-133-13】】】】 将将将将内内内内部部部部数数数数据据据据存存存存贮贮贮贮器器器器30H30H~~~~4FH4FH单单单单元元元元中中中中的的的的内容传送至外部数据存贮器内容传送至外部数据存贮器内容传送至外部数据存贮器内容传送至外部数据存贮器2000H2000H开始的单元中。

      开始的单元中开始的单元中开始的单元中解:编程说明:解:编程说明:解:编程说明:解:编程说明:内部数据区首址:内部数据区首址:内部数据区首址:内部数据区首址: R0 R0←←←←30H 30H 外部数据区首址:外部数据区首址:外部数据区首址:外部数据区首址: DPTR DPTR←←←←2000H2000H循环次数:循环次数:循环次数:循环次数: R2 R2←←←←32H 32H 程序流程如图程序流程如图程序流程如图程序流程如图3-93-9所示 参考程序如下:参考程序如下:参考程序如下:参考程序如下: START: START:MOV R0 , #30HMOV R0 , #30H MOV DPTR , #2000HMOV DPTR , #2000H MOV R2 , #32HMOV R2 , #32H LOOP: LOOP: MOV A , @R0 MOV A , @R0 MOVX @DPTR , AMOVX @DPTR , A INC R0INC R0 INC DPTRINC DPTR DJNZ R2 , LOOPDJNZ R2 , LOOP ENDEND 【【【【例例例例3-143-14】】】】试试试试将将将将内内内内部部部部数数数数据据据据存存存存储储储储器器器器中中中中连连连连续续续续存存存存放放放放的的的的N N个个个个数据由小到大进行排列。

      数据由小到大进行排列数据由小到大进行排列数据由小到大进行排列设设设设::::数数数数据据据据区区区区首首首首地地地地址址址址存存存存于于于于寄寄寄寄存存存存器器器器R0R0中中中中,,,,数数数数据据据据个个个个数数数数N N存于寄存器存于寄存器存于寄存器存于寄存器R6R6中程序流程如图中程序流程如图中程序流程如图中程序流程如图3-103-10所示参考程序如下:参考程序如下:参考程序如下:参考程序如下:MOV 30H , R0MOV 30H , R0 L1:L1:DEC R6DEC R6MOV A , R6MOV A , R6MOV R3 , AMOV R3 , AMOV R2 , AMOV R2 , A MOV A , R0 MOV A , R0 MOV R1 , A MOV R1 , AINC R1INC R1 L2:L2:MOV A , @R0MOV A , @R0 CLR CCLR CSUBB A , @R1SUBB A , @R1JC L3JC L3MOV A , @R0MOV A , @R0XCH A , @R1XCH A , @R1MOV @R0 , AMOV @R0 , AL3:L3:INC R1INC R1DJNZ R2 , L2DJNZ R2 , L2INC R0INC R0DJNZ R3 , L1DJNZ R3 , L1MOV R0 , 30HMOV R0 , 30HENDEND 3.3.8 3.3.8 查表程序设计查表程序设计查表程序设计查表程序设计【【【【 例例例例 3-153-15】】】】 利利利利 用用用用 查查查查 表表表表 的的的的 方方方方 法法法法 编编编编 写写写写 Y= Y= X X2 2 (X=0,1,2…9 )(X=0,1,2…9 )的程序。

      的程序编编编编程程程程说说说说明明明明:::: 设设设设变变变变量量量量X X的的的的值值值值存存存存放放放放在在在在内内内内存存存存30H30H单单单单元元元元中中中中,,,,变变变变量量量量Y Y的的的的值值值值存存存存入入入入内内内内存存存存31H31H单单单单元元元元先先先先用用用用远远远远查查查查表表表表指指指指令令令令MOVC MOVC A, A, @A+DPTR @A+DPTR 编编编编写写写写程程程程序序序序((((参参参参考考考考程程程程序序序序1 1))));;;;再再再再用用用用近近近近查查查查表表表表指令指令指令指令MOVC A , @A+PC MOVC A , @A+PC 编写程序(见参考程序编写程序(见参考程序编写程序(见参考程序编写程序(见参考程序2 2) 参考程序参考程序参考程序参考程序1 1:::: ORG 1000H ORG 1000HSTART:START:MOV A , 30HMOV A , 30HMOV DPTR , #TABLEMOV DPTR , #TABLEMOVC A , @A+DPTRMOVC A , @A+DPTRMOV 31H , AMOV 31H , ATABLE:TABLE:DB 0 , 1 , 4 , 9 , 16DB 0 , 1 , 4 , 9 , 16DB 25 , 36 , 49 , 64 , 81DB 25 , 36 , 49 , 64 , 81ENDEND 参考程序参考程序参考程序参考程序2 2::::ORG 1000HORG 1000HSTART:START:MOV A , 30HMOV A , 30HADD A , 02HADD A , 02HMOVC A , @A+PCMOVC A , @A+PCMOV 31H , AMOV 31H , ADB 0 , 1 , 4 , 9 , 16 DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81DB 25 , 36 , 49 , 64 , 81ENDEND 【【【【例例例例3-163-16】】】】 将将将将1 1位位位位十十十十六六六六进进进进制制制制数数数数,,,,转转转转换换换换成成成成相相相相应应应应ASCⅡASCⅡ码。

      用计算求解和查表求解,进行比较用计算求解和查表求解,进行比较用计算求解和查表求解,进行比较用计算求解和查表求解,进行比较1 1)))) 计算求解:计算求解:计算求解:计算求解:编编编编程程程程说说说说明明明明:::: 设设设设待待待待转转转转换换换换的的的的一一一一位位位位十十十十六六六六进进进进制制制制数数数数存存存存放放放放在在在在40H 40H 单元中,转换后的单元中,转换后的单元中,转换后的单元中,转换后的ASCⅡASCⅡ码仍存放在码仍存放在码仍存放在码仍存放在40H 40H 中编编编编程程程程思思思思路路路路:::: 十十十十六六六六进进进进制制制制数数数数0 0~~~~9 9 的的的的ASCⅡASCⅡ为为为为41H41H~~~~46H.46H.,,,,当当当当待待待待转转转转换换换换的的的的数数数数≤9≤9时时时时,,,,加加加加30H30H,,,,既既既既是是是是其其其其对对对对应应应应的的的的ASCⅡASCⅡ码码码码;;;;当当当当待待待待转转转转换换换换的的的的数数数数>9>9时时时时,,,,加加加加37H37H程程程程序序序序流流流流程程程程如如如如图图图图3-113-11所示。

      所示 参考程序如下:参考程序如下:参考程序如下:参考程序如下:ORG 0100 H ORG 0100 H MOV A , 40 H MOV A , 40 H ANL A , # 0F H ANL A , # 0F H CLR CCLR C SUBB A, # 0AHSUBB A, # 0AH JC NEXTJC NEXTADD A , #0AHADD A , #0AH ADD A , #37HADD A , #37HSJMP SAVESJMP SAVENEXT: NEXT: ADD A , #0AHADD A , #0AH ADD A , #30H ADD A , #30HSAVE:SAVE:MOV 40H , AMOV 40H , A ENDEND ((((2 2)))) 查表求解:查表求解:查表求解:查表求解: ORG 0100HORG 0100HMOV A , 40HMOV A , 40HANL A , #0FHANL A , #0FH ADD A , 02HADD A , 02H MOVC A , @A+PCMOVC A , @A+PC MOV 40H , AMOV 40H , A DB ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’DB ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’ DB ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’DB ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’ DB ‘C’, ‘D’, ‘E’, ‘F’DB ‘C’, ‘D’, ‘E’, ‘F’ ENDEND 3.3.93.3.9 子程序设计子程序设计子程序设计子程序设计1 1、、、、子程序的调用与返回子程序的调用与返回子程序的调用与返回子程序的调用与返回MCS-51MCS-51单单单单片片片片机机机机有有有有两两两两条条条条子子子子程程程程序序序序调调调调用用用用指指指指令令令令::::ACALL ACALL addr11addr11、、、、 LCALL addr16 LCALL addr16;一条子程序返回指令;一条子程序返回指令;一条子程序返回指令;一条子程序返回指令RETRET。

      2 2、、、、保存与恢复寄存器内容保存与恢复寄存器内容保存与恢复寄存器内容保存与恢复寄存器内容例如:例如:例如:例如:SUB1: PUSH PSWSUB1: PUSH PSW PUSH A PUSH A PUSH R6 PUSH R6 ∶∶∶∶ ( (此处省略了子程序的内容此处省略了子程序的内容此处省略了子程序的内容此处省略了子程序的内容) ) ∶∶∶∶ POP R6 POP R6 POP A POP A PUSH PSW PUSH PSW 3 3、、、、子程序的参数传递子程序的参数传递子程序的参数传递子程序的参数传递主程序在调用子程序时,经常需要传送一些参数,主程序在调用子程序时,经常需要传送一些参数,主程序在调用子程序时,经常需要传送一些参数,主程序在调用子程序时,经常需要传送一些参数,子程序运行完后也经常将一些参数回送给主程序,这子程序运行完后也经常将一些参数回送给主程序,这子程序运行完后也经常将一些参数回送给主程序,这子程序运行完后也经常将一些参数回送给主程序,这叫参数传递。

      叫参数传递叫参数传递叫参数传递例例例例3-17 3-17 】】】】 编程计算编程计算编程计算编程计算c = ac = a2 2 +b+b2 2编程说明:这个问题中,计算某数的平方可以用编程说明:这个问题中,计算某数的平方可以用编程说明:这个问题中,计算某数的平方可以用编程说明:这个问题中,计算某数的平方可以用子程序来实现,两次调用该子程序,并求和便得到所子程序来实现,两次调用该子程序,并求和便得到所子程序来实现,两次调用该子程序,并求和便得到所子程序来实现,两次调用该子程序,并求和便得到所需结果设需结果设需结果设需结果设a a、、、、b b 分别存于内部分别存于内部分别存于内部分别存于内部RAM RAM 的的的的30H30H、、、、31H31H单元,单元,单元,单元,结果结果结果结果C C存于内部存于内部存于内部存于内部RAMRAM的的的的40H40H单元 参数传递:主程序中,将某数存放到累加器参数传递:主程序中,将某数存放到累加器参数传递:主程序中,将某数存放到累加器参数传递:主程序中,将某数存放到累加器A A中,中,中,中,作为子程序的入口参数;子程序中,将所求数的平方作为子程序的入口参数;子程序中,将所求数的平方作为子程序的入口参数;子程序中,将所求数的平方作为子程序的入口参数;子程序中,将所求数的平方值存放在累加器值存放在累加器值存放在累加器值存放在累加器A A中,作为出口参数(即主程序的返回中,作为出口参数(即主程序的返回中,作为出口参数(即主程序的返回中,作为出口参数(即主程序的返回值)。

      值)子程序的入口参数:子程序的入口参数:子程序的入口参数:子程序的入口参数:A A中存放某数的值中存放某数的值中存放某数的值中存放某数的值子程序的出口参数:子程序的出口参数:子程序的出口参数:子程序的出口参数:A A中存放所求数的平方中存放所求数的平方中存放所求数的平方中存放所求数的平方子程序如下:子程序如下:子程序如下:子程序如下:SQR: SQR: INC AINC A MOVC A , @A+PC MOVC A , @A+PC ;查平方表;查平方表;查平方表;查平方表 RETRETTABLE: TABLE: DB 0 , 1 , 4 , 9 , 16DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81DB 25 , 36 , 49 , 64 , 81主程序流程图如图主程序流程图如图主程序流程图如图主程序流程图如图3-12 3-12 所示 主程序如下:主程序如下:主程序如下:主程序如下:START: START: MOV A , 30HMOV A , 30H ACALL SQR ACALL SQR ;调查表子程序;调查表子程序;调查表子程序;调查表子程序 MOV R1 , A MOV R1 , A ;;;;a a2 2暂存暂存暂存暂存R1R1中中中中 MOV A , 31H MOV A , 31H ACALL SQR ACALL SQR ;调查表子程序;调查表子程序;调查表子程序;调查表子程序 ADD A , R1ADD A , R1 MOV 40H , AMOV 40H , A ENDEND 4 4、、、、子程序的嵌套子程序的嵌套子程序的嵌套子程序的嵌套 3.4 MCS-51MCS-51汇编语汇编语言实用程序设计言实用程序设计( (略略) ) 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.