汇编语言程序设计课件.ppt
《汇编语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计课件.ppt(36页珍藏版)》请在三一办公上搜索。
1、汇编语言程序设计,2,学习内容,4-1 汇编程序的约定,4-2 程序设计步骤,4-3 直线程序,4-4 分支程序,4-5 循环程序,4-6 子程序,3,4-1 汇编程序约定,汇编语言程序:用汇编语言编写的、完成特定功能的指令序列。汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件。,汇编语言程序到机器语言程序的转换过程称为汇编。1.手工汇编:人工查指令表汇编。用于设计短小程序或调试程序的场合。2.机器汇编:用汇编程序进行汇编。交叉编译的概念;,汇编语言的特点:1 程序效率高,占存储空间小,运行速度快;2 使用汇编语言比高级语言难,需对硬件有相当了解;3 缺乏通用性,不易移植;,4,源
2、程序使用机器汇编要考虑汇编程序的约定,1)按指令格式和语法规则编写程序。常数的表示:十进制数:20十六进制数:87H,0F0H二进制数:01011001B字符:H字符串:“Hello”。2)使用伪指令提供汇编信息。,5,汇编的主要任务:,1)确定程序中每条汇编语言指令的指令机器码。2)确定每条指令在存储器中的存放地址。3)提供错误信息。4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。,一.汇编语言指令类型1.机器指令:指令系统中的全部指令,每条指令有对应的机器代码。2.伪指令:汇编控制指令,仅提供汇编信息,没有指令代码。,6,一.汇编语言指令类型,3.宏指令:宏汇编功能
3、:将需要多次反复执行的程序段定义成一个宏指令名(宏定义),编程时,可在程序中使用宏指令名来替代一段程序(宏调用)。,宏定义过程:宏指令名 MACRO 形式参数;定义程序段 ENDM宏调用过程:宏指令名 实际参数 宏指令名 实际参数,7,二汇编控制指令(伪指令)常用伪指令及其功能:,1.ORG起始地址指令:指明程序和数据块起始地址。指令地址 机器码源程序ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6MOV A,R0 ORG 3000H 3000H 23DB 23H,100,A 3001H 64 3002H41,2.DB 定义字节型常数指令。例:DB
4、 12H,100,A,8,4.EQU 等值。为标号或标识符赋值。X1 EQU 2000HX2 EQU 0FH MAIN:MOV DPTR,#X1 ADD A,#X2,5.END 结束汇编指令。例:START:END START,3.DW 定义字型常数指令。例:DW 1234H,5678H,9,6 DS 定义存储区命令。从指定地址开始保留指定数目的字节单元作为存储区。例如:ADDRTABL:DS 20即从标号ADDRTABL代表的地址开始,保留20个连续的地址单元。7.BIT 位定义命令。例:AQ BIT P1.0(也可以是绝对地址),10,汇编语言程序设计步骤,一.确定方案和计算方法二.了解应
5、用系统的硬件配置、性能指标。三.建立系统数学模型,确定控制算法和操作步骤。四.画程序流程图 表示程序结构和程序功能,五.编制源程序1.合理分配存储器单元和了解I/O接口地址。2.按功能设计程序,明确各程序之间的相互关系。3.用注释行说明程序,便于阅读和修改调试和修改。,11,4-2 常用程序结构:直线程序、分支程序、循环程序、子程序,4-2-1 直线程序直线程序又称简单程序,程序走向只有一条路径。,双字节变补程序(设数据在R4R5中):MOV A,R5;取低字节CPL AADD A,#1;低字节变补MOV R5,AMOV A,R4;取高字节CPL AADDC A,#0;高字节变补MOV R4,
6、A,12,例 4-2-1-1 压缩式BCD码分解成为单字节BCD码。,MOV R0,#40H;设指针MOV A,R0;取一个字节MOV R2,A;暂存ANL A,#0FH;清0高半字节INC R0MOV R0,A;保存数据个位MOV A,R2SWAP A;十位换到低半字节ANL A,#0FHINC R0MOV R0,A;保存数据十位,十 个,13,4-2-2 分支程序由条件转移指令构成程序判断框部分,形成程序分支结构。,4-2-2-1单重分支程序一个判断决策框,程序有两条出路。两种分支结构:,例 求R2中补码绝对值,正数不变,负数变补。MOV A,R2 JNB ACC.7,NEXT;为正数?C
7、PL A;负数变补 INC A MOV R2,ANEXT:SJMP NEXT;结束,14,行李计价:当G5,M=G3;当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;G5?SJMP WETCL1:JC WETC;是,转至WETC SUBB A,#05H;否则M=3G+2(G-5)RLC A ADD A,R2WETC:MOV 41H,A;存结果M RET,15,4-2-2-2 多重分支程序一多次使用条件转移指
8、令,形成两个以上判断框。,例 求符号函数Y=SGN(X)+1 当 X0SGN(X)=0 当 X=0-1 当 X0,SYMB:MOV A,40H;取X JZ STOR;X=0,Y=X JB ACC7,MINUS;X0 MOV A,#1;X0,Y=+1 SJMP STORMINUS:MOV A,#0FFH;X0,Y=-1STOR:MOV 41H,A;保存Y RET,16,二按分支号转移,如:分支号=0,程序转移到ADDR0处;当分支号=1,程序转移到ADDR1处;。,(1)用地址表法。设分支号已存入A。MTJS:MOV DPTR,#TAB;取表首地址 CLR C;分支号2 RLC A MOV R2
9、,A INC A MOVC A,A+DPTR;取分支地址低位 PUSH ACC;入栈保存 MOV A,R2 MOVC A,A+DPTR;取分支地址高位 PUSH ACC;入栈保存 RET;分支地址PC,转移TAB:DW ADDR0;分支地址表 DW ADDR1 ADDR0:;程序段0,17,(2)转移表法。用分支转移指令 JMP A+DPTR。设R7R6=分支号,MTJS:MOV DPTR,#TAB;指向表首地址 MOV A,R7;分支号高字节3 MOV B,#03H MUL AB;乘积不超过1字节 ADD A,DPH MOV DPH,A MOV A,R6;分支号低字节3 MOV B,#03H
10、 MUL AB XCH A,B ADD A,DPH;DPHDPH+(R7、R6)3)高字节 MOV DPH,A XCH A,B;A(R7、R6)3)低字节 JMP A+DPTR;实现多分支转移TAB:LJMP ADDR0;转移表 LJMP ADDR1 LJMP ADDRNADDR0:;程序段0,18,4-2-3 循环程序包含多次重复执行的程序段,循环结构使程序紧凑。,4-2-3-1循环程序的构成,各个环节任务:一初始化部分循环准备工作。如:清结果单元、设指针、设循环控制变量初值等。,二循环体循环工作部分:需多次重复处理的工作。循环控制部分:1.修改指针和循环控制变量。2.检测循环条件:满足循环
11、条件,继续循环,否则退出循环。三.结束部分 处理和保存循环结果。允许0次循环的循环结构:在循环工作之前检测循环条件。,19,4-2-3-2 单重循环简单循环结构:循环体中不套循环。,例:求n个单字节数据的累加,设数据串已在43H起始单元,数据串长度在42H单元,累加和不超过2个字节。,SUM:MOVR0,#42H;设指针MOVA,R0MOVR2,A;循环计数器nCLRA;结果单元清0MOVR3,AADD1:INCR0;修改指针ADDA,R0;累加JNC NEXT;处理进位INCR3;有进位,高字节加1NEXT:DJNZ R2,ADD1;循环控制:数据是否加完?MOV40H,A;循环结束,保存结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 课件
链接地址:https://www.31ppt.com/p-2159231.html