汇编语言程序.ppt
《汇编语言程序.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序.ppt(31页珍藏版)》请在沃文网上搜索。
1、第五章第五章 汇编语言程序设计汇编语言程序设计5-1 概述概述5-2 顺序与循环程序设计顺序与循环程序设计5-3 分支程序设计分支程序设计5-4 查表程序设计查表程序设计5-5 子程序设计子程序设计5-6 综合编程举例综合编程举例ENDThank you 5-1 概述概述一、程序设计语言1 1机器语言机器语言2 2汇编语言汇编语言3 3高级语言高级语言二、汇编语言的规范1汇编语言源程序的格式标号:操作码 操作数 ;注释LP:MOV A,20H ;20HA 源程序源程序(汇汇编编语语言言程序)程序)汇编程序汇编程序(完完成成把把源源程程序序翻翻译译成成目目的的程程序序的工作)的工作)目的程序目的
2、程序(机机器器语语言言程程序序))2汇编语言伪指令 n n控制汇编用的特殊指令,这些指令不属于指令控制汇编用的特殊指令,这些指令不属于指令系统,系统,不产生机器代码不产生机器代码,因此称为伪指令或汇,因此称为伪指令或汇编指令编指令 1 1)ORG(origin)ORG(origin)ORG ORG 表达式表达式(exp)(exp)expexp必须是必须是1616位的地址值或标号。位的地址值或标号。如:如:ORG 0000HORG 0000H LJMP START LJMP START ORG 0100H ORG 0100HSTART:START:2)END 2)END 汇编语言程序结束伪指令,
3、用在程序的末尾,表示程序汇编语言程序结束伪指令,用在程序的末尾,表示程序已结束。汇编程序对已结束。汇编程序对ENDEND以后的指令不再汇编。以后的指令不再汇编。3)EQU(EQUATE)3)EQU(EQUATE)n n赋值赋值(也称等值也称等值)伪指令,它的作用是把操作数段中的伪指令,它的作用是把操作数段中的地址或数据赋值给标号字段中的标号。它的格式如下:地址或数据赋值给标号字段中的标号。它的格式如下:n n标号标号 (字符名称字符名称)EQU )EQU 数或汇编符号数或汇编符号n n例例:AA EQU R1AA EQU R1 ;R1R1与与AAAA等值等值 则则“MOV AMOV A,AA”
4、AA”与与“MOV AMOV A,R1”R1”等值。等值。n n例例:K1 EQU 40K1 EQU 40 DL EQU 0FA4CH DL EQU 0FA4CH MOV A MOV A,#K1#K1 ;4040A A LJMP DLLJMP DL ;FA4CHFA4CHPCPC4)DB(Define Byte)4)DB(Define Byte)定义字节伪指令,它的功能是从指定单元开始定定义字节伪指令,它的功能是从指定单元开始定义义(存储存储)若干个字节的数值或若干个字节的数值或ASCIIASCII码字符。码字符。常常用于定义数据常数表用于定义数据常数表 (建表建表)DB DB 字节常数或字节
5、常数或ASCIIASCII字符字符n n例例 ORG 1000HORG 1000HDB 76HDB 76H,7373,CC,BCBC ;在表示在表示ASCIIASCII字符字符 时需要用时需要用 或或“”“”括号括号DB 0ACHDB 0ACH则则 (1000H)(1000H)76H (1001H)76H (1001H)49H 49H (1002H)(1002H)43H (1003H)43H (1003H)42H 42H (1004H)(1004H)43H (1005H)43H (1005H)0ACH0ACH5)DW(Define Word)5)DW(Define Word)定义字伪指令,它的
6、功能是从指定单元开始定义定义字伪指令,它的功能是从指定单元开始定义(或或存储存储)若干个字的数据或若干个字的数据或ASCIIASCII码字符。码字符。n n例例4 ORG 2200H4 ORG 2200Hn nDW 1246HDW 1246H,7BH7BH,1010,abcdabcd 则则 (2200H)(2200H)12H (2201H)12H (2201H)46H46H (2202H)(2202H)00H (2203H)00H (2203H)7BH7BH (2204H)(2204H)00H (2205H)00H (2205H)0AH0AH (2206H)(2206H)61H (2207H)
7、61H (2207H)62H62H (2208H)(2208H)0FFH0FFH n n(6)BITn n位地址符号伪指令,它的功能是把位地址赋予所规定的字符名称。n n字符名称 操作码 操作数 BIT 位地址n n例5 ABC BIT P1.0 Q4 BIT P2.2注意:ABCD BIT 30H MOV A,30HBIT与EQU基本相同n n(7)DATA 定义标号数值伪指令,它的功能是给标号段中的标号赋以数值。标号 操作码 操作数字符名称:DATA 表达式例6 MN DATA 3000H注意:用DATA定义的标识符可以先使用后定义;而EQU定义的标识符必须先定义后使用。三、汇编语言程序设
8、计步骤n n(1)(1)熟悉与分析工作任务,明确其要求和要达到的熟悉与分析工作任务,明确其要求和要达到的工作目的、技术指标等。工作目的、技术指标等。n n(2)(2)确定解决问题的计算方法和工作步骤。确定解决问题的计算方法和工作步骤。n n(3)(3)画工作流程图画工作流程图n n(4)(4)分配内存工作单元,确定程序与数据区存放地分配内存工作单元,确定程序与数据区存放地址。址。n n(5)(5)按流程图编写源程序。按流程图编写源程序。n n(6)(6)上机调试、修改及最后确定源程序。上机调试、修改及最后确定源程序。n n编程原则:编程原则:程序简短和缩短运行时间程序简短和缩短运行时间 返回画
9、工作流程图返回5-2 顺序与循环程序设计顺序与循环程序设计n n顺序结构程序是一种最简单、最基本的程序。特点:是按程序编写的顺序依次执行,程序流向不变。n n循环结构程序(通常称其为循环体):需多次重复执行某段程序的情况,这种结构可大大缩短程序。顺序程序设计顺序程序设计循环程序设计循环程序设计返回顺序程序设计顺序程序设计n n例例1 1 将将20H20H单元的两个单元的两个BCDBCD码拆开并码拆开并变成变成ASCIIASCII码,存入码,存入21H21H、22H22H单元。单元。注意:注意:ASCIIASCII码码0 09 9为为30H30H39H39H。n n法一法一 :ORG 2000H
10、ORG 2000H MOV A MOV A,20H20H MOV B MOV B,10H10H;用;用10H10H作除数作除数 DIV ABDIV AB ORL B ORL B,30H30H;低;低4 4位位BCDBCD码变为码变为ASCIIASCII码码 MOV 22HMOV 22H,B B ORL A ORL A,30H30H;高;高4 4位位BCDBCD码变为码变为ASCIIASCII码码 MOV 21HMOV 21H,A An n法二:地地 址址 机器码机器码 周期数周期数 源程序源程序 ORG 2000HORG 2000H2000H 7822 1 2000H 7822 1 MOV R
11、0MOV R0,#22H#22H2002H 7600 1 2002H 7600 1 MOV MOV R0R0,#00#002004H E520 1 2004H E520 1 MOV AMOV A,20H20H2006H D6 1 2006H D6 1 XCHD AXCHD A,R0R02007H 432230 2 2007H 432230 2 ORL 22HORL 22H,#30H#30H200AH C4 1 200AH C4 1 SWAP ASWAP A200BH 4430 1 200BH 4430 1 ORL AORL A,#30H#30H200DH F52l 1 200DH F52l 1
12、 MOV 21HMOV 21H,A A ENDEND方法一占用字节数为16,执行总周期数为13。方法二占用字节数为15,执行总周期数为9。n n设有两个设有两个4 4位位BCDBCD码,分别存放在码,分别存放在23H23H、22H22H单元单元和和33H33H、32H32H单元中,求它们的和,并送入单元中,求它们的和,并送入43H43H、42H42H单元中去(以上均为低位在低字节,高位在高单元中去(以上均为低位在低字节,高位在高字节)。字节)。ORG 2000HORG 2000H CLR C CLR C MOV A MOV A,22H22H ADD A ADD A,32H 32H ;(22H)
13、(22H)十十(32H)(32H)A A DA ADA A ;BCDBCD码调整码调整 MOV 42HMOV 42H,A A ;存结果低位存结果低位 MOV AMOV A,23H23H ADDC A ADDC A,33H 33H ;(33H)(33H)十十(23H)(23H)十十C CA A DA ADA A MOV 43H MOV 43H,A A ;存结果高位存结果高位 LLLL:SJMP LL SJMP LL ;暂停暂停 ENDEND返回循环程序设计循环程序设计n n循环结构的程序一般包括以下几部分循环结构的程序一般包括以下几部分 n n1 1循环初态循环初态循环初态循环初态(或称初始条件
14、或称初始条件)是设置循环过是设置循环过程中工作单元的初始值。程中工作单元的初始值。n n2 2循环体循环体重复执行的程序段部分称循环体重复执行的程序段部分称循环体n n3 3循环控制部分循环控制部分该部分用于控制循环的执行和结束。该部分用于控制循环的执行和结束。单重循环程序单重循环程序 ,多重循环程序(循环嵌套,多重循环程序(循环嵌套 )不允许循环体互相交叉。另外,也不允许不允许循环体互相交叉。另外,也不允许从循环程序的外部跳入循环程序的内部从循环程序的外部跳入循环程序的内部。n n例例例例4 4:晶振频率为:晶振频率为6MHZ6MHZ,设计一延时程序,延时时设计一延时程序,延时时间为间为10
15、ms10ms。MOV R1,#DATAMOV R1,#DATA(此处是此处是0AH)0AH)DL2:MOV R0,#DTATA2DL2:MOV R0,#DTATA2(此处是此处是7DH=125)7DH=125)DL1:DL1:NOPNOPNOPNOPDJNZ R0,DL1DJNZ R0,DL1DJNZ R1,DL2DJNZ R1,DL2ENDENDn n(1+(1+1+2)*DATA2+2)*DATA+1)*MC=(1+(1+1+2)*DATA2+2)*DATA+1)*MC=延时时间延时时间=10062=10062微秒微秒n n例例6 6 从从22H22H单元开始有一无符号数据块,其长度在单元
16、开始有一无符号数据块,其长度在20H20H单元。单元。求出数据块中最大值,并存入求出数据块中最大值,并存入21H21H单元。单元。ORG 3000HORG 3000HCLR A CLR A MOV R2MOV R2,20H20HMOV R1MOV R1,22H22HCLR CCLR CSUBB ASUBB A,R1R1JNC NEXT JNC NEXT MOV AMOV A,R1R1SJMP NEXT1SJMP NEXT1NEXTNEXT:ADD AADD A,R1 R1 NEXT1NEXT1:INC R1 INC R1 DJNZ R2DJNZ R2,LP LP MOV MOV 21H21H,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序