汇编语言程序设计知识课件
合集下载
第05章汇编语言及程序设计ppt课件
汇编语言 源程序
汇编
目标程序
汇编程序
一一对应
汇编语言的指令
机器语言的指令
汇编语言程序设计的特点:
➢ 汇编语言是面向机器的语言,CPU不同的机器有不同 的汇编语言
➢ 可以充分利用机器的硬件功能和结构特点
➢ 可有效地加快程序的执行速度,减少目标程序所占用 的存储空间
➢ 可以对输入/输出端口进行控制,实时性能好 ➢ 汇编语言程序移植性、通用性、可读性差
第 5 章 程序设计及汇编语言
内容安排
一. 程序设计步骤 二. 程序设计 三. 汇编语言及汇编程序 四. 汇编语言源程序格式及实例 五. 上机操作
§5.1 程序设计步骤
(1〕分析问题 (2〕建立数学模型 (3〕确定算法 (4〕绘制程序流程图 (5〕内存空间分配 (6〕编制程序与静态检查 (7〕程序调试〔实验)
[名字] DW <表达式或数据项表> 功能:表达式或项表中的每一项是一个/两个字
节数,他们从符号名地址开始按字节连续存放, 如:直D到1 表中DB数据12H项, 结12H束 12H
D1 DB 3 DUP (12H) MOV AX, D1
注意:① 表达式或数据项表多于一项时,项与项之间用 逗号“,”或空格分隔
MOV BL,0FFH ;将FFH送入BL寄存器
LOut: MOV AL,BL
OUT 73H,AL ;将结果的标志数据输出到 73H端口
HLT
;暂停
Lw10: MOV BL,00H
JMP LOut
L10to20: MOV BL,88H
JMP LOut
3. 循环程序
强制CPU重复执行某一指令系列〔程序段〕的一种程序 结构形式
组成:
汇编语言程序设计ppt课件
3.用注释行说明程序,便于阅读和修改调试和修改。
1
9
常用程序结构: 顺序程序、循环程序、分支程序、查表程序、子程
2. 顺序与循环程序设计
❖5.2.1 顺序程序设计(又称简单程序) 既无分支,又无循环,按照顺序执行 可完成一定的基本功能,是编写复杂程序的 基础
10
例1:将一个字节内的两个BCD码拆开并变成ASCII码, 存入两个RAM单元。BCD码放在内RAM的20H, 转换后高半字节放到21H,低字节放22H。
ROM
20H BCDH BCDL
SWAP A ORL A, #30H MOV 21H, A SJMP $
;BCDH数送A的低4位 21H 0011 BCDH ;完成转换 @R0 22H 000101 B0C0D0L0
;存数
END
12
回目录 上页 下页
5.2.2 循环程序
包含多次重复执行的程序段,循环结构使程序紧凑。
11
回目录 上页 下页
程序:
ORG 1000H
MOV R0, #22H ;R0 22H MOV @R0,#0 ; 22H 0 MOV A, 20H ;两个BCD数送A
A
B0C0D01H01 B0BCC0DD0LH0
XCHD A, @R0 ;BCDL数送22H ORL 22H, #30H ;完成转换
表示程序结构和程序功能
美国国家标准化协会ANSI(American National
Standard Institute)设定了一些常用的流程图符号如图所示:
开始
起止框
或
流程线
输入输出框 判断框
处理框
连接点 图:常用流程图符号
Y
?
[所有分类]第4章 汇编语言程序设计ppt课件
JMP_128:MOV A,R3
RL A MOV DPTR,#JMPTAB
JMP @A+DPTR JMPTAB:AJMP ROUT00
AJMP ROUT01
┇
┇
AJMP ROUT7F
128个子程序首址
•说明:此程序要求128个转移目的地址(ROUT00 ~ROUT7FH)必须驻 留在与绝对转移指令AJMP相同的一个2KB存储区内。
第4章 汇编语言程序设计及知识
§4.1 编程的步骤、方法和技巧 §4.2 汇编语言源程序的编辑和汇编
2021/5/19
§4.1 编程的步骤、方法和技巧
§4.1.1 编程的步骤 §4.1.2 编程的方法和技巧 §4.1.3 汇编语言程序的基本结构
2021/5/19
编程的步骤
一、分析问题 二、确定算法 三、画程序流程图 四、编写程序
LOOP : CLR C SUBB A,@R1 JNC NEXT MOV A,@R1 SJMP NEXT1
NEXT: ADD A,@R1 NEXT1: INC R1
DJNZ R2,LOOP MOV MAX,A
2021/5/19
循环结构
例:在内部RAM的20H~ 2FH连续16个单元中存放单 字节无符号数。求16个无 符号数之和,并将其和存放 在31H、30H中。用R0作加 数指针,R7作循环次数计 数器。
一、顺序结构
顺序程序是最简单的程序结构,即顺序 结构。
程序按顺序一条一条地执行指令。
2021/5/19
顺序结构举例
例1 双字节乘法子程序。 (R4) (R3)×(R2)=[(R4) ·28+ (R3) ] ·(R2) =(R4) ·(R2) ·28+ (R3) ·(R2)
四章汇编语言程序设计ppt课件
指令助记符:MOV,ADD,…. 指示性(伪指令)操作符:DB,DW,SEGMENT,
ENDS,ASSUME,END ,…. 保留字:SEGMENT ENDS OFFSET SIZE DB
DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END
类别名
CODE、DATA、STACK(同名同类别段连续存放)
第4章 汇编语言程序设计
伪操作命令之三:段定义伪指令
段寄存器说明伪指令ASSUME
ASSUME 段寄存器名:段名[段寄存器名:段名[…..]]
例:
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN:
……
CODE ENDS ENDS MAIN
;指定第一条要执行的指令标号
注:1、该伪指令用于明确用SEGMENT定义的段的类型, 使编译程序能生成目标代码程序。
2、在源程序中,该伪操作放在可执行程序的前面。 3、该指令没有给段寄存器赋予实际的初值。这项工作要通
过写指令来完成,其中代码段不需要赋值。
+、-、*、/、MOD、SHL、SHR 都可应用于数字运算。 +、- 可以用于表示存储器操作数的地址,或两个存储器
单元(同一段内)的地址偏移量之差。 例:SUM - 2
CYCLE - GO
第4章 汇编语言程序设计
运算符之二:逻辑运算符
AND、OR、XOR、NOT 按位的逻辑运算 例:IN AL,PORT_VAL
DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数
DATA ENDS;数据段结束
CODE SEGMENT;定义代码段
ENDS,ASSUME,END ,…. 保留字:SEGMENT ENDS OFFSET SIZE DB
DW DD MOV PUSH ADD SUB MUL DIV INC DEC LOOP PROC ENDP CALL RET END
类别名
CODE、DATA、STACK(同名同类别段连续存放)
第4章 汇编语言程序设计
伪操作命令之三:段定义伪指令
段寄存器说明伪指令ASSUME
ASSUME 段寄存器名:段名[段寄存器名:段名[…..]]
例:
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN:
……
CODE ENDS ENDS MAIN
;指定第一条要执行的指令标号
注:1、该伪指令用于明确用SEGMENT定义的段的类型, 使编译程序能生成目标代码程序。
2、在源程序中,该伪操作放在可执行程序的前面。 3、该指令没有给段寄存器赋予实际的初值。这项工作要通
过写指令来完成,其中代码段不需要赋值。
+、-、*、/、MOD、SHL、SHR 都可应用于数字运算。 +、- 可以用于表示存储器操作数的地址,或两个存储器
单元(同一段内)的地址偏移量之差。 例:SUM - 2
CYCLE - GO
第4章 汇编语言程序设计
运算符之二:逻辑运算符
AND、OR、XOR、NOT 按位的逻辑运算 例:IN AL,PORT_VAL
DATA2 DB 0C1H,36H,9EH,0D5H,20H;加数
DATA ENDS;数据段结束
CODE SEGMENT;定义代码段
汇编语言程序设计知识
例:LOOP:MOV A,#00H;立即数00H→A
03.12.2
单片机原理及接口技术 精选PPT
标号
• 标号是用户定义的符号地址。 • 一条指令的标号是该条指令的符号名字,标号的值是
汇编这条指令时指令的地址。 • 标号由以英文字母开始的1~8个字母或数字组成,以
冒号“:”结尾。 • 标号可以由赋值伪指令赋值,如果没有赋值,汇编程
• 模块长度适中。20条~100条的范围较合适。
03.12.2
单片机原理及接口技术 精选PPT
二、编程技巧
1、尽量采用循环结构和子程序。 2、尽量少用无条件转移指令。 3、对于通用的子程序,考虑到其通用性,除了用于存放子程
序入口参数的寄存器外,子程序中用到的其他寄存器的内容 应压入堆栈(返回前再弹出),即保护现场。 4、在中断处理程序中,除了要保护处理程序中用到的寄存器 外,还要保护标志寄存器。 5、用累加器传递入口参数或返回参数比较方便,在子程序中, 一般不必把累加器内容压入堆栈。
• 流程图步骤分得越细致,编写程序是也越方便。 • 画流程图是程序结构设计是采用的一种重要手段。 • 一个系统软件有总的流程图(主程序框图)和局部的流程图。 • 流程图常采用的图形和符号。
03.12.2
单片机原理及接口技术 精选PPT
椭圆框 矩形框 菱形框
圆圈 指向线
03.12.2
或桶形框
:表示程序的开始或结束。
• 设计的硬件结构是否方便编程?
03.12.2
单片机原理及接口技术 精选PPT
二、确定算法
• 算法是如何将实际问题转化成程序模块 来处理。
• 在编程以前,先要对几种不同的算法进 行分析、比较,找出最适宜的算法
03.12.2
03.12.2
单片机原理及接口技术 精选PPT
标号
• 标号是用户定义的符号地址。 • 一条指令的标号是该条指令的符号名字,标号的值是
汇编这条指令时指令的地址。 • 标号由以英文字母开始的1~8个字母或数字组成,以
冒号“:”结尾。 • 标号可以由赋值伪指令赋值,如果没有赋值,汇编程
• 模块长度适中。20条~100条的范围较合适。
03.12.2
单片机原理及接口技术 精选PPT
二、编程技巧
1、尽量采用循环结构和子程序。 2、尽量少用无条件转移指令。 3、对于通用的子程序,考虑到其通用性,除了用于存放子程
序入口参数的寄存器外,子程序中用到的其他寄存器的内容 应压入堆栈(返回前再弹出),即保护现场。 4、在中断处理程序中,除了要保护处理程序中用到的寄存器 外,还要保护标志寄存器。 5、用累加器传递入口参数或返回参数比较方便,在子程序中, 一般不必把累加器内容压入堆栈。
• 流程图步骤分得越细致,编写程序是也越方便。 • 画流程图是程序结构设计是采用的一种重要手段。 • 一个系统软件有总的流程图(主程序框图)和局部的流程图。 • 流程图常采用的图形和符号。
03.12.2
单片机原理及接口技术 精选PPT
椭圆框 矩形框 菱形框
圆圈 指向线
03.12.2
或桶形框
:表示程序的开始或结束。
• 设计的硬件结构是否方便编程?
03.12.2
单片机原理及接口技术 精选PPT
二、确定算法
• 算法是如何将实际问题转化成程序模块 来处理。
• 在编程以前,先要对几种不同的算法进 行分析、比较,找出最适宜的算法
03.12.2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
标号
标号是用户定义的符号地址。
一条指令的标号是该条指令的符号名字,标号的值是汇编这 条指令时指令的地址。
标号由以英文字母开始的1~8个字母或数字组成,以冒号 “:”结尾。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
操作数
汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没 有。
若有两个操作数,操作数之间用逗号“,”分开。
操作数包括的内容有:
(1)工作寄存器:由PSW.3和PSW.4规定的当前工作寄存器区中的 R0~R7。 (2)特殊功能寄存器:21个SFR的名字。 (3)标号名:赋值标号—由汇编指令EQU等赋值的标号;指令标号— 指令标号指示的指令的第一字节地址是该标号的值。
椭圆框 矩形框 菱形框
圆圈 指向线
或桶形框
:表示程序的开始பைடு நூலகம்结束。
:表示要进行的工作。
:表示要判断的事情,菱形框内 的表达式表示要判断的内容。
:表示连接点 :表示程序的流向
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
注释
注释部分不是汇编语言的功能部分,只是用语增加 程序的可读性。
良好的注释是汇编语言程序编写中的重要组成部分。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
§4.1.2
编程的方法和技巧
一、模块化的程序设计方法 二、编程技巧
四、编写程序
用80C51汇编语言编写的源程序行(一条语句)包 括四个部分,也叫四个字段:
〔标号:〕〔操作码〕〔操作数〕;〔注释〕
每个字段之间要用分隔符分隔,而每个字段内部不能使用分 隔符。可以用作分隔符的符号:空格“ ”、冒号“:”、、 逗号“,”、分号“;”等。
例:LOOP:MOV A,#00H;立即数00H→A
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
一、分析问题
对需要解决的问题进行分析,以求对问题由正确的 理解。如,
解决问题的任务是什么? 工作过程?
现有的条件,已知数据,对运算的精度和速度方面 的要求? 设计的硬件结构是否方便编程?
三、画程序流程图
程序流程图是使用各种图形、符号、有向线段等来说明程序 设计过程的一种直观的表示。 流程图步骤分得越细致,编写程序是也越方便。 画流程图是程序结构设计是采用的一种重要手段。 一个系统软件有总的流程图(主程序框图)和局部的流程图。 流程图常采用的图形和符号。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
1、程序功能模块化的优点
单个模块结构的程序功能单一,易于编写、调试和修改。 便于分工,从而可使多个程序员同时进行程序的编写和调试 工作,加快软件研制进度。 程序可读性好,便于功能扩充和版本升级。 对程序的修改可局部进行,其它部分可以保持不变。 对于使用频繁的子程序可以建立子程序库,便于多个模块调 用。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
(4)常数:可用二进制(B)、十进制、十六进制(H),若常数以字 符开头,前面加0。 (5)$:用来表示程序计数器的当前值。 (6)表达式:汇编时,计算出表达式的值填入目标码。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
二、确定算法
算法是如何将实际问题转化成程序模块来处理。
在编程以前,先要对几种不同的算法进行分析、比 较,找出最适宜的算法
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存 放该指令目标码第一字节的存储单元的地址赋给该标号,所 以,标号又叫指令标号。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
操作码
操作码是必不可少的。
它用一组字母符号表示指令的操作码。在80C51中, 由80C51的指令助记符组成。
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
一、模块化的程序设计方法
1、程序功能模块化的优点 2、划分模块的原则
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
§4.1
编程的步骤、方法和技巧
§4.1.1 编程的步骤 §4.1.2 编程的方法和技巧 §4.1.3 汇编语言程序的基本结构
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
§4.1.1
编程的步骤
一、分析问题 二、确定算法 三、画程序流程图 四、编写程序
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
第四章
汇编语言程序设计及知识
§4.1 编程的步骤、方法和技巧 §4.2 汇编语言源程序的编辑和汇编
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利