教学课件第4章 汇编语言程序设计.ppt
《教学课件第4章 汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《教学课件第4章 汇编语言程序设计.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第4章 汇编语言程序设计2022-7-11第4章 汇编语言程序设计q程序设计的步骤和伪指令
2、。q源程序、目标代码、编辑和汇编的基本概念。q顺序程序、分支程序、循环程序、子程序的设计。q算术运算和数码转制程序设计 。2022-7-11广东松山职业技术学院课件制作组本章主要内容本章主要内容 4.1 汇编语言程序设计基础汇编语言程序设计基础 4.2 顺序程序设计顺序程序设计 4.3 分支程序设计分支程序设计 4.4 循环程序设计循环程序设计 4.5 子程序设计子程序设计 4.6 算术运算和数码转制程序设计算术运算和数码转制程序设计2022-7-11广东松山职业技术学院课件制作组4.1 汇编语言程序设计基础汇编语言程序设计基础 1. 机器语言机器语言4.1.1 程序设计语言简介程序设计语言简
3、介2. 汇编语言汇编语言n用二进制编码表示每条指令用二进制编码表示每条指令。计算机能够直接执。计算机能够直接执行用机器语言编出的机器码程序。不同种类的计行用机器语言编出的机器码程序。不同种类的计算机,由于其内部结构不完全相同,它的机器码算机,由于其内部结构不完全相同,它的机器码指令也不一定相同。指令也不一定相同。n符号化的机器语言符号化的机器语言。它用一些容易理解和记忆的。它用一些容易理解和记忆的符号符号代替机器码指令,又称为代替机器码指令,又称为助记符语言助记符语言,助记,助记符指令与机器码指令一一对应。不同结构的计算符指令与机器码指令一一对应。不同结构的计算机,汇编指令不相同。机,汇编指令
4、不相同。2022-7-11广东松山职业技术学院课件制作组4.1.1 程序设计语言简介程序设计语言简介n汇编语言和特点:汇编语言和特点:对比机器码,汇编语言克服了对比机器码,汇编语言克服了机器语言的缺点,方便了用户机器语言的缺点,方便了用户记忆指令记忆指令和和编写程编写程序序,但用汇编语言编写的源程序需用汇编程序,但用汇编语言编写的源程序需用汇编程序“翻译翻译”成机器码后方可执行。采用汇编语言编成机器码后方可执行。采用汇编语言编写程序,可以直接访问和操作单片机中的寄存器写程序,可以直接访问和操作单片机中的寄存器及存储器单元,对数据的处理表述的非常具体。及存储器单元,对数据的处理表述的非常具体。因
5、此,在计算机实时测试和控制领域中得到了广因此,在计算机实时测试和控制领域中得到了广泛应用。泛应用。n接近自然语言和数学语言的算法语言,具有直观、接近自然语言和数学语言的算法语言,具有直观、通用等特点。不象机器语言和汇编语言编写程序通用等特点。不象机器语言和汇编语言编写程序需要完全了解需要完全了解CPU硬件结构,且程序不能移植。硬件结构,且程序不能移植。 3.高级语言高级语言2022-7-11广东松山职业技术学院课件制作组4.1.2 汇编语言程序设计步骤汇编语言程序设计步骤1分析问题,确定算法分析问题,确定算法程序设计中最重要的一步。设计人员必须认真、仔细地考虑系统需要解决的各种问题解决的各种问
6、题以及将来系将来系统功能的进一步扩展统功能的进一步扩展,明确知道程序要解决的问题和接收、处理、发送的数据范围以及使用什么样的算法。 2画流程图画流程图流程图是用各种图形、符号、有向线段来直观地表示程序执行的步骤和顺序。它可使人们通过流程图的基本线索,对全局有完整的了解。 2022-7-11广东松山职业技术学院课件制作组4.1.2 汇编语言程序设计步骤汇编语言程序设计步骤4调试、测试程序调试、测试程序调试是利用仿真器等开发工具,采用单步、设断单步、设断点、连续运行点、连续运行等方法排除程序中的错误排除程序中的错误,完善程序的功能。3编写汇编语言源程序编写汇编语言源程序根据流程图用汇编语言指令实现
7、流程图的每一个步骤,从而编写出汇编语言的源程序。2022-7-11广东松山职业技术学院课件制作组4.1.3 伪指令伪指令 1. 汇编起始伪指令汇编起始伪指令ORGn格式:格式:ORG 16位地址位地址n功能:规定该指令后面的源程序汇编后所产生的功能:规定该指令后面的源程序汇编后所产生的目标程序存放的起始地址。目标程序存放的起始地址。 例例4.1 ORG 2000HMAIN:MOV A,#50H2.汇编结束伪指令汇编结束伪指令ENDn格式:格式: ENDn 功能:通知汇编程序功能:通知汇编程序结束汇编结束汇编。汇编时遇到。汇编时遇到END指令,则结束所有汇编工作,而指令,则结束所有汇编工作,而E
8、ND之后的所有之后的所有指令将不予处理。指令将不予处理。2022-7-11广东松山职业技术学院课件制作组4.1.3 伪指令伪指令 3. 赋值伪指令赋值伪指令EQUn格式:格式:字符名称字符名称 EQU 赋值项赋值项 n功能:功能:把该伪指令右边的值赋项给左边用户定义把该伪指令右边的值赋项给左边用户定义的符号。的符号。 例例4-3 COUNT EQU 64H MOV A,COUNT ;A(64H)n注意注意:使用:使用EQU伪指令时,必须先赋值,后使用,伪指令时,必须先赋值,后使用,故该指令通常放在程序开头。而赋值后的故该指令通常放在程序开头。而赋值后的“字字符符”,其值在整个程序中不改变,并可
9、多次使用。,其值在整个程序中不改变,并可多次使用。 2022-7-11广东松山职业技术学院课件制作组4.1.3 伪指令伪指令 4. 定义数据字节伪指令定义数据字节伪指令DB n格式:格式:标号:标号: DB 字节数据表字节数据表 n功能:从指定的地址单元开始,定义若干个字节功能:从指定的地址单元开始,定义若干个字节的数据或的数据或ASCII码字符码字符 。 例例4-4 ORG 2000HTAB:DB 99H,00H,01H,02H,03H,04HSTR:DB ABC n以上伪指令经汇编后在程序储存器中的以上伪指令经汇编后在程序储存器中的2000H2008H单元的内容为:单元的内容为:99H、0
10、0H、01H、02H、03H、04H、41H、42H、43H。2022-7-11广东松山职业技术学院课件制作组4.1.3 伪指令伪指令 5. 定义数据字节伪指令定义数据字节伪指令DW n格式:格式:标号:标号: DW 16 位数据表位数据表 n功能:从指定的地址单元开始,定义若干个字数功能:从指定的地址单元开始,定义若干个字数据(据(16位)。位)。 例例4-5 ORG 2000H TAB:DW 1234H,50H,CDn以上伪指令经汇编后,程序存储器中的以上伪指令经汇编后,程序存储器中的2000H2005H单元的内容为:单元的内容为:12H、34H、00H、50H、43H、44H。2022-
11、7-11广东松山职业技术学院课件制作组4.1.3 伪指令伪指令 6. 数据地址赋值伪指令数据地址赋值伪指令DATAn格式:格式:标号标号 DATA 表达式表达式n功能:把由表达式指定的数据地址或代码地址功能:把由表达式指定的数据地址或代码地址赋予规定的标号。赋予规定的标号。nDATA伪指令的功能和伪指令的功能和EQU伪指令相似,但伪指令相似,但DATA伪指令所定义的符号可伪指令所定义的符号可先使用后定义先使用后定义。在。在程序中它常用来定义数据地址。该语句一般放在程序中它常用来定义数据地址。该语句一般放在程序的开头和末尾。程序的开头和末尾。 2022-7-11广东松山职业技术学院课件制作组4.
12、1.3 伪指令伪指令 7.定义存储区伪指令定义存储区伪指令DS n格式:格式:标号:标号: DS 表达式表达式n功能:从指定的地址单元开始,保留由表达式功能:从指定的地址单元开始,保留由表达式指定的若干字节空间,以备程序使用。指定的若干字节空间,以备程序使用。 例例4-6 ORG 2000H DS 05 DB 11H,22H,33Hn以上伪指令经汇编后从以上伪指令经汇编后从2000H单元开始,单元开始,保留保留5个字节的存储单元个字节的存储单元,从,从2005H单元开始连续存放单元开始连续存放11H,22H,33H代码。代码。 2022-7-11广东松山职业技术学院课件制作组4.1.3 伪指令
13、伪指令 8.位地址赋值伪指令位地址赋值伪指令BITn格式:格式:字符名称字符名称 BIT 位地址位地址n功能:把位地址赋予规定的字符名称,常用于功能:把位地址赋予规定的字符名称,常用于定义位符号地址定义位符号地址。例例4-7 AA BIT P1.7 BB BIT P1.6n汇编后汇编后P1.7和和P1.6(位地址)赋给变量(位地址)赋给变量AA和和BB,在程序中就可以把在程序中就可以把AA和和BB作为位地址使用。作为位地址使用。n上面介绍了上面介绍了MCS-51单片机汇编语言中常用的伪指单片机汇编语言中常用的伪指令。在编写汇编语言源程序时,必须严格按照汇编令。在编写汇编语言源程序时,必须严格按
14、照汇编语言的规范书写。语言的规范书写。 2022-7-11广东松山职业技术学院课件制作组4.2 顺序程序设计顺序程序设计u顺序程序(又称简单程序)是一种最简单、最顺序程序(又称简单程序)是一种最简单、最基本的程序。基本的程序。u程序按编写的顺序从第一条指令开始执行,直程序按编写的顺序从第一条指令开始执行,直到最后一条指令为止。计算机是按到最后一条指令为止。计算机是按指令在存储器指令在存储器中存放的先后次序来顺序执行程序中存放的先后次序来顺序执行程序的。它会在的。它会在PC控制下顺序执行。这种程序虽然简单,但它是构控制下顺序执行。这种程序虽然简单,但它是构成复杂程序的基础。成复杂程序的基础。例例
15、4-9 将将两个两个半字节半字节数合并成数合并成一个一个一字节一字节数。数。n设内部设内部RAM的的40H、41H单元中分别存放着单元中分别存放着8位位二进制数。要求取出两个单元中的低半字节、合二进制数。要求取出两个单元中的低半字节、合并成一个字节后,存并成一个字节后,存42H单元。单元。2022-7-11广东松山职业技术学院课件制作组 ORG 0000HSTART:MOV R1,#40H MOV A,R1 ANL A,#0FH SWAP A INC R1 XCH A,R1 ANL A,#0FH ORL A,R1 INC R1 MOV R1,A RET END4.2 顺序程序设计顺序程序设计2
16、022-7-11广东松山职业技术学院课件制作组例例4-10 拆字程序拆字程序:将:将40H单元中的内容拆开后分别送单元中的内容拆开后分别送41H、42H单元中。单元中。 ORG 0000HSTART:MOV R1,#40H MOV A,R1 MOV B,A ;暂存;暂存B中中 ANL A,#0FH ;取第一个半字节;取第一个半字节 INC R1 MOV R1,A ;存放第一个半字节;存放第一个半字节 MOV A,B SWAP A ANL A,#0FH ;取第二个半字节;取第二个半字节 INC R1 MOV R1,A ;存放第二个半字节;存放第二个半字节 END4.2 顺序程序设计顺序程序设计2
17、022-7-11广东松山职业技术学院课件制作组4.3 分支程序设计分支程序设计分支程序条件分支无条件分支LJMP、AJMP单分支多分支JZJZ、JNZJNZCJNZCJNZ、DJNZDJNZ等等JNCJNC、JBJB、JNBJNB、JBCJBC等等2022-7-11广东松山职业技术学院课件制作组4.3 分支程序设计分支程序设计例例4-11 两个无符号数比较大小两个无符号数比较大小设两个连续外部设两个连续外部RAM单元单元ST1和和ST2中存放无符号的二进制数,找中存放无符号的二进制数,找出其中的大数存入出其中的大数存入ST3单元中。单元中。n用减法指令用减法指令SUBB来比较两数的大来比较两数
18、的大小。执行该指令前,先把进位位清小。执行该指令前,先把进位位清零。通过借位(零。通过借位(CY)的状态判断两)的状态判断两数的大小。设两个数数的大小。设两个数X和和Y,当,当XY时,(时,(CY)0;XY ,(,(CYCY)1 1 。用减法指令比较大小,会破。用减法指令比较大小,会破坏累加器中的内容,故作减法前先坏累加器中的内容,故作减法前先保存累加器中的内容。保存累加器中的内容。n执行执行JNC指令后,形成了分支。执指令后,形成了分支。执行行SJMP指令后,实现程序的转移。指令后,实现程序的转移。2022-7-11广东松山职业技术学院课件制作组 ORG 8000H ST1 EQU 8040
19、H START1:CLR C MOV DPTR,#ST1 MOV XA,DPTR MOV R2,A INC DPTR MOV XA,DTPR SUBB A,R2 JNC BIG1 XCH A,R2BIG0: INC DPTR MOVX DPTR,A4.3 分支程序设计分支程序设计 SJMP $BIG1:MOV X A,DPTR SJMP BIG0 END2022-7-11广东松山职业技术学院课件制作组例4-12 将ASCII码表的ASCII码转换为十六进制数码转换为十六进制数,如果ASCII码不能转换不能转换成十六进制数,用户标志位置户标志位置1。由ASCII码表可知,30H39H为09的AS
20、CII码,41H46H为AF的ASCII码。在这一范围内的ASCII码减30H或37H就可以获得对应的十六进制数。设ASCII码放在累加器A中,转换结果放回A中。流程图如右图所示。4.3 分支程序设计分支程序设计2022-7-11广东松山职业技术学院课件制作组4.3 分支程序设计分支程序设计 ORG 0000HSTART:CLR C SUBB A,#30H JC NASC CJNE A,#0AH,MMMM: JC ASC SUBB A,#07H CJNE A,#0AH,NNNN: JC NASC CJNE A,#10H,LLLL: JC ASCNASC: SETB F0ASC: RET END
21、2022-7-11广东松山职业技术学院课件制作组4.4 循环程序设计循环程序设计u在程序设计中,只有简单程序和分支程序是不在程序设计中,只有简单程序和分支程序是不够的。因为简单程序,每条指令只执行一次,而够的。因为简单程序,每条指令只执行一次,而分支程序则根据条件的不同,会跳过一些指令,分支程序则根据条件的不同,会跳过一些指令,执行另一些指令。它们的特点是,执行另一些指令。它们的特点是,每一条指令至每一条指令至多执行一次多执行一次。在处理实际事务时,有时会遇到。在处理实际事务时,有时会遇到多多次重复处理次重复处理的问题,用循环程序的方法来解决就的问题,用循环程序的方法来解决就比较合适。循环程序
22、中的某些指令可以反复执行比较合适。循环程序中的某些指令可以反复执行多次。多次。采用循环程序,使程序缩短,节省存储单采用循环程序,使程序缩短,节省存储单元元。重复次数越多,循环程序的优越性就越明显。重复次数越多,循环程序的优越性就越明显。但是并不节省程序的执行时间。由于要有循环准但是并不节省程序的执行时间。由于要有循环准备、结束判断等指令,循环程序执行速度要比简备、结束判断等指令,循环程序执行速度要比简单程序稍慢些。单程序稍慢些。2022-7-11广东松山职业技术学院课件制作组4.4.1 循环程序结构循环程序结构1. 循环程序的组成循环程序的组成 n初始化部分初始化部分:为循环程序做准备。如设置
23、循环次数计数:为循环程序做准备。如设置循环次数计数器的初值,地址指针置初值,为循环变量赋初值等。器的初值,地址指针置初值,为循环变量赋初值等。n处理部分处理部分:为反复执行的程序段,是循环程序的实体。:为反复执行的程序段,是循环程序的实体。n修改部分修改部分:每执行一次循环体后,对指针做一次修改,:每执行一次循环体后,对指针做一次修改,使指针指向下一数据所在位置,为进入下一轮处理做准使指针指向下一数据所在位置,为进入下一轮处理做准备。备。n控制部分控制部分:根据循环次数计数器的状态或循环条件,检:根据循环次数计数器的状态或循环条件,检查循环能否继续执行,若循环次数已达到或循环条件不查循环能否继
24、续执行,若循环次数已达到或循环条件不满足,应控制退出循环,否则继续循环。满足,应控制退出循环,否则继续循环。通常通常处理、修改、控制部分处理、修改、控制部分又称为循环体。又称为循环体。n结束部分结束部分:分析及存放执行结果。:分析及存放执行结果。2022-7-11广东松山职业技术学院课件制作组4.4.1 循环程序结构循环程序结构2. 循环程序的结构循环程序的结构 先进入先进入处理部处理部分,再分,再控制循控制循环。即环。即至少执至少执行一次行一次循环体。循环体。先控制循环,先控制循环,后进入处理后进入处理部分。即先部分。即先根据判断结根据判断结果,控制循果,控制循环的执行与环的执行与否,有时可
25、否,有时可以不进入循以不进入循环体就退出环体就退出循环程序。循环程序。2022-7-11广东松山职业技术学院课件制作组4.4.2 循环程序设计循环程序设计1. 单循环程序单循环程序 n循环次数已知的循环程循环次数已知的循环程序序例例4-14 工作单元清零。工作单元清零。将将40H为起点的为起点的8个单元个单元清清0。注:注:此程序的前24句为设定循环初值,57句为循环体。 ORG 0000HCLEAR:CLR A MOV R0,#40H MOV R7,#08 LOOP: MOV R0,A INC R0 DJNZ R7,LOOP END2022-7-11广东松山职业技术学院课件制作组4.4.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件第4章 汇编语言程序设计 教学 课件 汇编语言 程序设计
限制150内