[工学]第三章程序设计.ppt

上传人:p** 文档编号:174948 上传时间:2023-03-20 格式:PPT 页数:35 大小:266.50KB
下载 相关 举报
[工学]第三章程序设计.ppt_第1页
第1页 / 共35页
[工学]第三章程序设计.ppt_第2页
第2页 / 共35页
[工学]第三章程序设计.ppt_第3页
第3页 / 共35页
[工学]第三章程序设计.ppt_第4页
第4页 / 共35页
[工学]第三章程序设计.ppt_第5页
第5页 / 共35页
[工学]第三章程序设计.ppt_第6页
第6页 / 共35页
[工学]第三章程序设计.ppt_第7页
第7页 / 共35页
[工学]第三章程序设计.ppt_第8页
第8页 / 共35页
[工学]第三章程序设计.ppt_第9页
第9页 / 共35页
[工学]第三章程序设计.ppt_第10页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]第三章程序设计.ppt》由会员分享,可在线阅读,更多相关《[工学]第三章程序设计.ppt(35页珍藏版)》请在第壹文秘上搜索。

1、 汇编程序汇编程序:能将汇编语言的能将汇编语言的源程序源程序转换成机器转换成机器语言的语言的目标目标程序的一种系统软件程序的一种系统软件汇编汇编:汇编语言程序到机器语言程序的转换过程:汇编语言程序到机器语言程序的转换过程1.手工汇编手工汇编:人工查指令表,查出程序中每条指令对:人工查指令表,查出程序中每条指令对应的机器代码。用于设计短小程序或调试程序的场合应的机器代码。用于设计短小程序或调试程序的场合2. .机器汇编机器汇编:用计算机中的汇编程序对用户源程序进:用计算机中的汇编程序对用户源程序进行汇编。行汇编。用机器汇编要考虑汇编程序的约定用机器汇编要考虑汇编程序的约定汇编的主要任务:汇编的主

2、要任务:1)确定程序中每条汇编语言指令的指令机器码确定程序中每条汇编语言指令的指令机器码2)确定每条指令在存储器中的存放地址确定每条指令在存储器中的存放地址一一. 汇编语言指令类型汇编语言指令类型3)提供错误信息提供错误信息4)提供目标执行文件提供目标执行文件(*.OBJ/*.HEX)和列表文件和列表文件(*.LST)1 机器指令机器指令:指令系统中的全部指令。每条机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被都有对应的机器代码,可以被CPU执行执行2 伪指令伪指令: 汇编控制指令,没有指令代码,只用于汇汇编控制指令,没有指令代码,只用于汇编过程编过程(预编译指令预编译

3、指令),为汇编程序提供汇编信息,为汇编程序提供汇编信息 地址地址 机器码机器码源程序源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,R0 3 3 宏指令宏指令 宏汇编功能:将需要反复多次执行的程序段定义宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代使用宏指令名来替代被定义的被定义的程序段(宏调用)程序段(宏调用)宏定义过程宏定义过程:宏调用过程:宏调用过程: 宏指令名宏指令名 实际参数实际参数 宏指令名宏指令名 实际参数实际

4、参数宏指令名宏指令名 MACRO 形式参数形式参数 ;被定义的程序段;被定义的程序段 ENDM用机器汇编要考虑汇编程序的约定用机器汇编要考虑汇编程序的约定1按指令格式和语法规则编写程序按指令格式和语法规则编写程序常数表示法:常数表示法:十进制数:十进制数: 20,20D十六进制数:十六进制数:87H,0F0H二进制数:二进制数: 01011001B字符:字符: H字符串:字符串: “Hello” 2使用伪指令提供汇编信息使用伪指令提供汇编信息二二伪指令伪指令 常用伪指令及功能:常用伪指令及功能:1. ORG起始地址指令。定义程序或数据的起始地址起始地址指令。定义程序或数据的起始地址指令地址指令

5、地址 机器码机器码源程序源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,R0 ORG 3000H 3000H 23 TAB: DB 23H,100,A 3001H 64 3002H 412. DB 定义字节常数指令。输入程序中的常数定义字节常数指令。输入程序中的常数例:例: DB 23H,100,ADB“HELLO” 4. EQU 等值指令。为标号或标识符赋值等值指令。为标号或标识符赋值 X1 EQU 2000HX2 EQU 0FH MAIN: MOV DPTR,#X1 ADD A,#X2 5. END 结束汇编指令结束汇编

6、指令例:例:START: END START3 . D W 定 义 字 型 常 数 指 令定 义 字 型 常 数 指 令例:例: DW 1234H,5678H一一. .确定方案和计算方法确定方案和计算方法二二. .了解应用系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三. .建立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四. .合理分配存储器单元和了解合理分配存储器单元和了解I/O接口地址接口地址五五. 编制源程序编制源程序1.按功能设计程序,明确各程序之按功能设计程序,明确各程序之间的相互关系间的相互关系2. 用流程图表示程序结构和功能用流程图

7、表示程序结构和功能开始开始1 YN?3.程序中用注释说明指令在程序中程序中用注释说明指令在程序中的作用,方便阅读、调试和修改的作用,方便阅读、调试和修改 直线程序、分支程序、循环程序、子程序直线程序、分支程序、循环程序、子程序直线程序直线程序(简单程序简单程序),程序走向只有一条路径,程序走向只有一条路径双字节变补程序双字节变补程序(设数据在设数据在R4R5中中)MOV A,R5 ;取低字节取低字节CPL AADD A,#1 ;低字节变补低字节变补MOV R5,AMOV A,R4 ;取高字节取高字节CPL AADDC A,#0 ;高字节变补高字节变补MOV R4,A例例4-3-4 压缩式压缩式

8、BCD码分解成为单字节码分解成为单字节 BCD码码(拆字拆字)MOV R0,#40H;设指针设指针MOV A,R0;取一个字节取一个字节MOV R2,A;暂存暂存ANL A,#0FH ;清清0高半字节高半字节INC R0MOV R0,A ;保存数据个位保存数据个位片内片内RAM42H41H40H 十位十位 个位个位MOV A,R2SWAP A ;十位换到低半字节十位换到低半字节ANL A,#0FHINC R0MOV R0,A ;保存数据十位保存数据十位00000000个位个位00000000十位十位 MOV A,R2 JNB ACC.7,N;为正数?为正数? CPL A;负数变补负数变补 IN

9、C A MOV R2,AN: SJMP N;结束结束由条件转移指令构成程序判断框部分由条件转移指令构成程序判断框部分,形成分支结构形成分支结构4-4-2 4-4-2 单重分支程序单重分支程序一个判断决策框,形成一个分一个判断决策框,形成一个分支两条出路。两种分支结构:支两条出路。两种分支结构:条件满足条件满足?N影响条件影响条件Y处理段处理段条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2例例 求求8 8位补码的绝对值:位补码的绝对值:正数不变,负数变补正数不变,负数变补每每10kg为为1个计价单位个计价单位G已存入已存入40H单元。单元。行李运费计算行李运费计算: 当当G5,M=G

10、3 ; 当当G5,M=G3 + (G-5)(5-3)FRT: 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 RET4-4-34-4-3 多重分支程序多重分支程序一一多次使用条

11、件转移指令,形成两个以上判断框多次使用条件转移指令,形成两个以上判断框例例 求符号函数求符号函数 Y= SGN(X) +1 当当 X 0SGN(X) = 0 当当 X=0 1 当当 X 0X0?Y取取XNY= 0Y= + 1开始开始Y=1X0?NY保存保存Y结束结束图图4-4-4求符号函数流程图求符号函数流程图SYMB: MOV A,40H ;取取X JZ STOR ;X=0,Y=X JB ACC.7,MINUS;X0 MOV A,# 1 ;X0,Y=+1 SJMP STORMINUS:MOV A,#0FFH;X0,Y= 1STOR: MOV 41H,A ;保存保存Y RET MOV A,R2

12、 INC A MOVC A,A+DPTR;取分支地址取分支地址 PUSH ACC ;保存分支地址高保存分支地址高8位位 RET ;分支地址分支地址PC,转移转移二二按分支号按分支号X转移转移: 当当 X=0=0,程序转移到,程序转移到 ADDR0处处; 当当 X= =1 1,程序转移到程序转移到 ADDR1处处; MTJS:MOV DPTR,#TAB ;取表首地址取表首地址 ADD A,A ;X2 MOV R2,A MOVC A,A+DPTR;取分支地址取分支地址 PUSH ACC ;保存分支地址低保存分支地址低8位位X = ?0处理一处理一处理二处理二处理处理1n(1)用地址表法:用地址表法

13、: 设分支号设分支号 X 已存入已存入 A累加器累加器TAB: DW ADDR0 ;分支地址表分支地址表 DW ADDR1 ADDR0: ;程序段程序段 0 ADDR1: ;程序段程序段 1 ADD A,DPH ;DPHDPH+(R7、R6)3)高字节高字节 MOV DPH,A XCH A,B ;A(R7、R6)3)低字节低字节 JMP A+DPTR;实现多分支转移实现多分支转移 MOV A,R6;X 低字节低字节3 MOV B,#03H MUL AB XCH A,B(2)转移表法转移表法 分支转移指令分支转移指令JMP A+DPTRMTJS:MOV DPTR,#TAB ;指向表首指向表首 M

14、OV A,R7 ;X 高字节高字节3 MOV B,#03H MUL AB ;DPH乘积乘积+DPH ADD A,DPH MOV DPH,ALJMP ROUTnLJMP ROUT1LJMP ROUT0A+DPTRTAB+X3DPTRTABJMP A+DPTRR6R73DPLDPHA+ +TAB: LJMP ADDR0 ;转移表转移表 LJMP ADDR1 LJMP ADDRNADDR0: ;程序段程序段0 设设R7R6 = X (分支号分支号)包含多次重复执行的程序段,循环结构使程序紧凑包含多次重复执行的程序段,循环结构使程序紧凑4-5-14-5-1 循环程序的构成循环程序的构成循环控制循环控制

15、 ?循环工作循环工作循环结束循环结束循环初始化循环初始化YN各个环节任务:各个环节任务:一初始化部分:一初始化部分:循环准备工作循环准备工作如:清结果单元、设数据指针、设循环如:清结果单元、设数据指针、设循环控制变量的初值等控制变量的初值等二循环体二循环体循环工作部分:需多次重复处理的工作循环工作部分:需多次重复处理的工作循环控制部分:循环控制部分:1.1.修改数据指针,修改循环控制变量修改数据指针,修改循环控制变量2.2.检测循环条件:满足循环条件,继续循环,否则退出循环检测循环条件:满足循环条件,继续循环,否则退出循环三三. .结束部分结束部分 处理和保存循环结果处理和保存循环结果循环工作

16、至少执行一次的循环结构循环工作至少执行一次的循环结构允许允许 0 0 次循环的结构:在循环工作之前检测循环条件次循环的结构:在循环工作之前检测循环条件4-5-24-5-2 单重循环单重循环简单循环结构:循环体中不套循环简单循环结构:循环体中不套循环例:求例:求n n个单字节数据的累加,设数据串已在个单字节数据的累加,设数据串已在4343H H起始单元,起始单元,数据串长度在数据串长度在4242H H单元,且累加和不超过单元,且累加和不超过2 2个字节个字节片内 RAMXn43HX142Hn41HSUMH40HSUMLSUM: MOV R0,#42H ;设数据指针设数据指针 R0R0 MOV A,R0 MOV R2,A ;设循环计数器设循环计数器 R2R2n CLR A ;结果单元清结果单元清0 0 MOV R3,AADD1:INC R0 ;修改数据指针修改数据指针 ADD A,R0 ;累加累加 JNC NEXT ;处理进位处理进位 INC R3 ;有进位,高字节加有进位,高字节加1 1NEXT:DJNZ R2,ADD1;循环控制:数据全部加完循环控制:数据全部加完? MOV 40H,A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!