四章节汇编语言程序设计.ppt
《四章节汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《四章节汇编语言程序设计.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、四章节汇编语言程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 4-14-1 汇编程序约定汇编程序约定汇编语言程序:汇编语言程序:汇编语言程序:汇编语言程序:用汇编语言编写的、用汇编语言编写的、用汇编语言编写的、用汇编语言编写的、完成特定功能的指令序列。完成特定功能的指令序列。完成特定功能的指令序列。完成特定功能的指令序列。汇编程序:汇编程序:汇编程序:汇编程序:能能能能将将将将汇汇汇汇编编编编语语语语言言言言源源源源程程程程序序序序转转转转换换换换成成成
2、成机机机机器器器器语语语语言言言言目目目目标标标标程程程程序序序序的的的的系统软件。系统软件。系统软件。系统软件。汇编语言程序到机器语言程序的转换过程称为汇编。汇编语言程序到机器语言程序的转换过程称为汇编。汇编语言程序到机器语言程序的转换过程称为汇编。汇编语言程序到机器语言程序的转换过程称为汇编。1.1.手工汇编手工汇编手工汇编手工汇编:人工查指令表汇编。用于设计短小程序:人工查指令表汇编。用于设计短小程序:人工查指令表汇编。用于设计短小程序:人工查指令表汇编。用于设计短小程序或调试程序的场合。或调试程序的场合。或调试程序的场合。或调试程序的场合。2 2.机器汇编机器汇编机器汇编机器汇编:用汇
3、编程序进行汇编:用汇编程序进行汇编:用汇编程序进行汇编:用汇编程序进行汇编。源程序使用机器汇编要考虑汇编程序的约定源程序使用机器汇编要考虑汇编程序的约定源程序使用机器汇编要考虑汇编程序的约定源程序使用机器汇编要考虑汇编程序的约定1 1 1 1)按指令格式和语法规则编写程序。按指令格式和语法规则编写程序。按指令格式和语法规则编写程序。按指令格式和语法规则编写程序。常数的表示:常数的表示:常数的表示:常数的表示:十进制数:十进制数:十进制数:十进制数:20202020十六进制数:十六进制数:十六进制数:十六进制数:87878787H H H H,0F0H0F0H0F0H0F0H二进制数:二进制数:
4、二进制数:二进制数:01011001010110010101100101011001B B B B字符:字符:字符:字符:H H H H 字符串:字符串:字符串:字符串:“Hello”Hello”Hello”Hello”。2 2 2 2)使用伪指令提供汇编信息使用伪指令提供汇编信息使用伪指令提供汇编信息使用伪指令提供汇编信息。汇编的主要任务:汇编的主要任务:1 1 1 1)确定程序中每条汇编语言指令的指令机器码。)确定程序中每条汇编语言指令的指令机器码。)确定程序中每条汇编语言指令的指令机器码。)确定程序中每条汇编语言指令的指令机器码。2 2 2 2)确定每条指令在存储器中的存放地址。)确定每
5、条指令在存储器中的存放地址。)确定每条指令在存储器中的存放地址。)确定每条指令在存储器中的存放地址。3 3 3 3)提供错误信息。)提供错误信息。)提供错误信息。)提供错误信息。4 4 4 4)提提提提 供供供供 目目目目 标标标标 执执执执 行行行行 文文文文 件件件件(*.*.*.*.OBJOBJOBJOBJ/*./*./*./*.HEX)HEX)HEX)HEX)和和和和 列列列列 表表表表 文文文文 件件件件(*.*.*.*.LSTLSTLSTLST)。)。)。)。bb一一一一.汇编语言指令类型汇编语言指令类型汇编语言指令类型汇编语言指令类型1.1.1.1.机器指令机器指令机器指令机器指
6、令:指令系统中的全部指令,每条指令有对应的机器代码。指令系统中的全部指令,每条指令有对应的机器代码。指令系统中的全部指令,每条指令有对应的机器代码。指令系统中的全部指令,每条指令有对应的机器代码。2 2 2 2.伪指令伪指令伪指令伪指令:汇编控制指令,仅提供汇编信息,没有指令代码。汇编控制指令,仅提供汇编信息,没有指令代码。汇编控制指令,仅提供汇编信息,没有指令代码。汇编控制指令,仅提供汇编信息,没有指令代码。一一.汇编语言指令类型汇编语言指令类型3 3 3 3.宏指令宏指令宏指令宏指令:宏汇编功能:将需要多次反复执行的程序段定义成一宏汇编功能:将需要多次反复执行的程序段定义成一宏汇编功能:将
7、需要多次反复执行的程序段定义成一宏汇编功能:将需要多次反复执行的程序段定义成一个宏指令名(宏定义),编程时,可在程序中使用个宏指令名(宏定义),编程时,可在程序中使用个宏指令名(宏定义),编程时,可在程序中使用个宏指令名(宏定义),编程时,可在程序中使用宏指令名来替代一段程序(宏调用)。宏指令名来替代一段程序(宏调用)。宏指令名来替代一段程序(宏调用)。宏指令名来替代一段程序(宏调用)。bb宏定义过程宏定义过程宏定义过程宏定义过程:bb宏指令名宏指令名宏指令名宏指令名 MACROMACRO 形式参数形式参数形式参数形式参数bb ;定义程序段;定义程序段;定义程序段;定义程序段bb ENDMEN
8、DMbb宏调用过程:宏调用过程:宏调用过程:宏调用过程:bb bb 宏指令名宏指令名宏指令名宏指令名 实际参数实际参数实际参数实际参数bb bb 宏指令名宏指令名宏指令名宏指令名 实际参数实际参数实际参数实际参数二二二二汇编控制指令汇编控制指令汇编控制指令汇编控制指令(伪指令伪指令伪指令伪指令)伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令 不同汇编程序允许的伪指令并不相同,但一些基本的伪指令在大部份汇编程序中都能使用 汇编控制指令汇编控制指令汇编控制指令汇编控制指令(伪指令伪指令伪指令伪指令)常用伪指令及其功能:常用伪指
9、令及其功能:常用伪指令及其功能:常用伪指令及其功能:1.1.1.1.ORGORGORGORG起始地址指令:指明程序和数据块起始地址。起始地址指令:指明程序和数据块起始地址。起始地址指令:指明程序和数据块起始地址。起始地址指令:指明程序和数据块起始地址。指令地址指令地址指令地址指令地址 机器码机器码机器码机器码源程序源程序源程序源程序ORGORGORGORG 2000H 2000H 2000H 2000H 2000H 78 30 2000H 78 30 2000H 78 30 2000H 78 30 MAIN MAIN MAIN MAIN:MOV R0MOV R0MOV R0MOV R0,#30
10、H#30H#30H#30H 2002H E6 2002H E6 2002H E6 2002H E6MOV AMOV AMOV AMOV A,R0R0R0R0 ORG 3000HORG 3000HORG 3000HORG 3000H 3000H 23 3000H 23 3000H 23 3000H 23DB 23HDB 23HDB 23HDB 23H,100100100100,A A A A 3001H 64 3001H 64 3001H 64 3001H 64 3002H 3002H 3002H 3002H41414141bb2.2.2.2.DB DB DB DB 定定定定义义义义字字字字节节
11、节节型型型型常常常常数数数数指指指指令令令令。例:例:例:例:DB 12HDB 12HDB 12HDB 12H,100100100100,AAAA例如:例如:ORGORG2000H2000HTAB1TAB1:DBDB01H01H,04H04H,08H08H,10H10H以上伪指令汇编后从以上伪指令汇编后从2000H2000H单元开始定义(存放)单元开始定义(存放)4 4个字节数据个字节数据(平方表):(平方表):(2000H2000H)01H01H,(,(2001H2001H)04H04H,(,(2002H2002H)09H09H,(2003H2003H)10H10H。bb3.3.3.3.DW
12、 DW DW DW 定定定定义义义义字字字字型型型型常常常常数数数数指指指指令令令令。例:例:例:例:DW 1234HDW 1234HDW 1234HDW 1234H,5678H5678H5678H5678H例如:例如:ORGORG2100H2100HTAB2TAB2:DW 1067HDW 1067H,1000H1000H,100100汇编后:汇编后:(2100H2100H)10H10H,(,(2101H2101H)67H67H,(2102H2102H)10H10H,(,(2103H2103H)00H00H,(2104H2104H)00H00H,(,(2105H2105H)64H64H。4.4
13、.4.4.EQU EQU EQU EQU 等值。为标号或标识符赋值。等值。为标号或标识符赋值。等值。为标号或标识符赋值。等值。为标号或标识符赋值。X1 X1 X1 X1 EQU 2000HEQU 2000HEQU 2000HEQU 2000HX2 X2 X2 X2 EQU 0FHEQU 0FHEQU 0FHEQU 0FH MAIN:MAIN:MAIN:MAIN:MOV DPTRMOV DPTRMOV DPTRMOV DPTR,#X1#X1#X1#X1 ADD AADD AADD AADD A,#X2#X2#X2#X2bb 5.5.5.5.ENDENDENDEND 结束汇编指令。结束汇编指令。结
14、束汇编指令。结束汇编指令。bb例:例:例:例:STARTSTARTSTARTSTART:bb bb END END END END START START START START判断框判断框 连接点连接点 图图:常用流程图符号常用流程图符号 美国国家标准化协会美国国家标准化协会ANSIANSI(American National American National Standard InstituteStandard Institute)设定了一些常用的流程图符号如图所示:)设定了一些常用的流程图符号如图所示:起止框起止框 或或 流程线流程线输入输出框输入输出框 处理框处理框4-24-24-2
15、4-2 汇编语言程序设计步骤汇编语言程序设计步骤汇编语言程序设计步骤汇编语言程序设计步骤一一一一.确定方案和计算方法确定方案和计算方法确定方案和计算方法确定方案和计算方法二二二二.了解应用系统的硬件配置、性能指标。了解应用系统的硬件配置、性能指标。了解应用系统的硬件配置、性能指标。了解应用系统的硬件配置、性能指标。三三三三.建立系统数学模型,确定控制算法和操作步骤。建立系统数学模型,确定控制算法和操作步骤。建立系统数学模型,确定控制算法和操作步骤。建立系统数学模型,确定控制算法和操作步骤。四四四四.画程序流程图画程序流程图画程序流程图画程序流程图 表示程序结构和程序功能表示程序结构和程序功能表
16、示程序结构和程序功能表示程序结构和程序功能 五五五五.编制源程序编制源程序编制源程序编制源程序1.1.1.1.合理分配存储器单元和了解合理分配存储器单元和了解合理分配存储器单元和了解合理分配存储器单元和了解I/OI/OI/OI/O接口地址。接口地址。接口地址。接口地址。2.2.2.2.按功能设计程序,明确各程序之间的相互关系。按功能设计程序,明确各程序之间的相互关系。按功能设计程序,明确各程序之间的相互关系。按功能设计程序,明确各程序之间的相互关系。3.3.3.3.用注释行说明程序,便于阅读和修改调试和修改。用注释行说明程序,便于阅读和修改调试和修改。用注释行说明程序,便于阅读和修改调试和修改
17、。用注释行说明程序,便于阅读和修改调试和修改。开始开始1 YN?常用程序结构常用程序结构常用程序结构常用程序结构:直线程序、分支程序、循环程序、子程序直线程序、分支程序、循环程序、子程序4-34-34-34-3 直线程序直线程序直线程序直线程序bb直线程序又称简单程序,程序走向只有一条路径。直线程序又称简单程序,程序走向只有一条路径。直线程序又称简单程序,程序走向只有一条路径。直线程序又称简单程序,程序走向只有一条路径。双字节变补程序双字节变补程序双字节变补程序双字节变补程序(设数据在设数据在设数据在设数据在R4R5R4R5R4R5R4R5中中中中):bbMOVMOVMOVMOV A A A
18、A,R5R5R5R5;取低字节取低字节取低字节取低字节bbCPLCPLCPLCPL A A A AbbADDADDADDADD A A A A,#1#1#1#1;低字节变补低字节变补低字节变补低字节变补bbMOVMOVMOVMOV R5 R5 R5 R5,A A A AbbMOVMOVMOVMOV A A A A,R4R4R4R4;取高字节取高字节取高字节取高字节bbCPLCPLCPLCPL A A A AbbADDC AADDC AADDC AADDC A,#0#0#0#0;高字节变补高字节变补高字节变补高字节变补bbMOVMOVMOVMOV R4 R4 R4 R4,A A A A例例4-3
19、-4 4-3-4 压缩式压缩式BCDBCD码分解成为单字节码分解成为单字节BCDBCD码。码。bbMOVMOVMOVMOV R0 R0 R0 R0,#40H#40H#40H#40H;设指针设指针设指针设指针bbMOVMOVMOVMOV A A A A,R0R0R0R0;取一个字节取一个字节取一个字节取一个字节bbMOVMOVMOVMOV R2 R2 R2 R2,A A A A;暂存暂存暂存暂存bbANLANLANLANL A A A A,#0FH#0FH#0FH#0FH;清清清清0 0 0 0高半字节高半字节高半字节高半字节bbINCINCINCINC R0 R0 R0 R0bbMOVMOVM
20、OVMOV R0 R0 R0 R0,A A A A ;保存数据个位保存数据个位保存数据个位保存数据个位bbMOVMOVMOVMOV A A A A,R2R2R2R2bbSWAP ASWAP ASWAP ASWAP A ;十位换到低半字节十位换到低半字节十位换到低半字节十位换到低半字节bbANLANLANLANL A A A A,#0FH#0FH#0FH#0FHbbINCINCINCINC R0 R0 R0 R0bbMOVMOVMOVMOV R0 R0 R0 R0,A A A A;保存数据十位保存数据十位保存数据十位保存数据十位十十十十 个个个个4-44-44-44-4 分支程序分支程序分支程序
21、分支程序由条件转移指令构成程序判断框部分,形成程序分支结构。由条件转移指令构成程序判断框部分,形成程序分支结构。由条件转移指令构成程序判断框部分,形成程序分支结构。由条件转移指令构成程序判断框部分,形成程序分支结构。4-4-24-4-24-4-24-4-2单重分支程序单重分支程序单重分支程序单重分支程序一个判断决策框,程序有两条出路。一个判断决策框,程序有两条出路。一个判断决策框,程序有两条出路。一个判断决策框,程序有两条出路。两种分支结构:两种分支结构:两种分支结构:两种分支结构:条件满足?N影响条件Y处理段条件满足?N影响条件Y处理1处理2例例例例 求求求求R2R2R2R2中补码绝对值,正
22、数不变,中补码绝对值,正数不变,中补码绝对值,正数不变,中补码绝对值,正数不变,负数变补。负数变补。负数变补。负数变补。MOV AMOV AMOV AMOV A,R2R2R2R2 JNB ACC.7JNB ACC.7JNB ACC.7JNB ACC.7,NEXTNEXTNEXTNEXT;为正数?为正数?为正数?为正数?CPL ACPL ACPL ACPL A ;负数变补负数变补负数变补负数变补 INC AINC AINC AINC A MOV R2MOV R2MOV R2MOV R2,A A A ANEXTNEXTNEXTNEXT:SJMP NEXT SJMP NEXT SJMP NEXT S
23、JMP NEXT ;结束结束结束结束例题行李计价:当例题行李计价:当例题行李计价:当例题行李计价:当G5G5,M=G3M=G3;当当当当GG5 5,M=G3+(G-5)(5-3)M=G3+(G-5)(5-3)FRTFRT:MOV A MOV A,40H40H;取行李重量取行李重量取行李重量取行李重量GG MOV R3 MOV R3,A A ;GG暂存暂存暂存暂存R3R3中中中中 MOV B MOV B,#03H#03H;M=G3M=G3 MUL AB MUL AB MOV R2 MOV R2,A A;暂存;暂存;暂存;暂存3 3GG到到到到R2R2 MOV A MOV A,R3R3;取回;取回
24、;取回;取回GG CJNE A CJNE A,#05H#05H,L1L1;G5?G5?SJMP WETC SJMP WETCL1L1:JCJC WETC WETC;是,转至;是,转至;是,转至;是,转至WETCWETC SUBB A SUBB A,#05H#05H;否则;否则;否则;否则M=3G+2(G-5)M=3G+2(G-5)RLC RLC A A ADD A ADD A,R2R2 SJMP LOOP SJMP LOOPWETCWETC:MOV A MOV A,R2 R2 ;3G3G到到到到A ALOOP:MOV 41HLOOP:MOV 41H,A A;存结果;存结果;存结果;存结果MM到
25、到到到41H41H RET RET设重量存在设重量存在40H40H中中4-4-34-4-3 多重分支程序多重分支程序一多次使用条件转移指令一多次使用条件转移指令,形成两个以上判断框。,形成两个以上判断框。例例例例 求符号函数求符号函数求符号函数求符号函数Y=SGN(X)Y=SGN(X)Y=SGN(X)Y=SGN(X)+1 +1 +1 +1 当当当当 X0X0X0X0SGN(X)=0 SGN(X)=0 SGN(X)=0 SGN(X)=0 当当当当 X=0X=0X=0X=0 -1 -1 -1 -1 当当当当 X0X0X0X0X0?Y取取XNY=0Y=+1开始开始Y=1X0?NY保存保存Y结束结束图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 汇编语言 程序设计
限制150内