汇编语言程序设计PPT课件

合集下载

第05章汇编语言及程序设计ppt课件

第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课件

汇编语言程序设计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
?

汇编语言程序设计经典课件模版(PPT65张)

汇编语言程序设计经典课件模版(PPT65张)

DA4 DB 5 DUP(0) ; 重复5个0存入DA4开始的存储单元中
2 表达式赋值语句
1)赋值语句 EQU
格式: 符号名 EQU 表达式 ;一个符号名只能定义一次
例:
COUNT EQU 100
; 常数赋给符号名COUNT
DATA EQU COUNT+2
; 表达式赋给符号名DATA
A1
运算结果 改变运算符优先级 下表或间接地址 连接结构与变量 修改变量 位图形 记录/字段位数
运算符优先级
优先级 1 2 3 4 5 6 7 8 9 10
运算符 ( ) , [ ] , < > , • , LENGTN , WIDTH , SIZE , MASK PTR , OFFEST , SEG , TYPE , THIS , CS: , DS: , ES: , SS: HIGH , LOW * , / , MOD , SHL , SHR +,- EQ , NE , LT , LE , GT , GE NOT AND OR , XOR SHORT
段名 ends ;指示段或者结构结束 功能:将一个逻辑段定义成一个整体 规定段所属的段寄存器 assume cs:段名, ds:段名, ss:段名,ES:段名 功能:定义4个逻辑段,指明段和段寄存器的 关系
3 段定义语句
定义类型是对该段起始位置的定义。参数有:
PARA,BYTE,WORD,PAGE
格式2:变量名 助记符 n DUP(操作数,操作数….)
N必须是正整数,表示括号内操作数的重复次数
例如:
DA1 DB 10H, 23H ; 变量DA1装入10H , 23H
DA2 DW ‘OK’
; 字符串‘OK’的ASCII码装入DA2开始的存 储单元中

四章汇编语言程序设计ppt课件

四章汇编语言程序设计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;定义代码段

汇编语言 PPT课件

汇编语言 PPT课件

;宏定义
shlext macro shloprand,shlnum
push cx
mov cl,shlnum
shl shloprand,cl
pop cx
endm
;宏指令
shlext ax,6
;宏展开
1
push cx
1
mov cl,06
1
shl ax,cl
1
pop cx
例5.5a
;统一4条移位指令的宏指令
xor al,al
sumd: add al,bx ;求和:AL←AL+DS:BX
inc bx
loop sumd
ret
checksumd endp end
列表文件
第5章
5.2 宏结构程序设计
宏汇编 重复汇编 条件汇编 ——统称宏结构
宏 Macro 是汇编语言的一个特点, 它是与子程序类似又独具特色的另一 种简化源程序的方法
例5.10
;;如果num < 100,则汇编如下语句 ;;否则,汇编如下语句
pdata 12 db 12 dup
pdata 102 db 100 dup
;宏调用① ;宏汇编结果①
;宏调用② ;宏汇编结果②
宏汇编、重复汇编和条件汇编
为源程序的编写提供了很多方便,
灵活运用它们可以编写出非常

良好的源程序来
例题5.4-2/3 mainend MACRO retnum ;;返回DOS,可不带参数
ifb <retnum> mov ah,4ch ;;没有参数
else mov ax,4c00h+ retnum AND 0ffh
;; 有参数 endif int 21h ENDM

第4章汇编语言程序设计ppt课件

第4章汇编语言程序设计ppt课件

DATA1
11
22
33 44
DATA2
11
00
22
00
44
33
DATA3
22
0
0
0
22
0
0
0
XX
66
55 44 33
28
数据定义伪指令的几点 说明
伪指令的性质决定所定义变量的类型;
定义字符串必须用DB伪指令
例:
DATA1 DB ‘ABCD’,66H
41H
‘A’
42H
‘B’
43H
‘C’
44H
‘D’
AH
DISN:T D2X1H
功能号OAH 字符串在内存中的存放地址
58
2. 定义字符缓冲区
用户自定义缓冲区格式:
N1 N2
存放字符个数:≤255
存放键入的字符 整个缓冲区
实际键入字符数 最大可键入字符数
0DH
59
输入字符串程序段
DAT1 DB 20,?,20 DUP(?)

LEA DX,DAT1 MOV AH,0AH INT 21H
定义的变量为4字型(8字节)
定义的变量为10字节型
26
数据定义伪指令例
DATA1 DB 11H,22H,33H,44H DATA2 DW 11H,22H,3344H DATA3 DD 11H*2,22H,33445566H
以上变量在内存中的 存放形式
27
数据定义伪指令例_变量在内存中的
分布
DSEG SEGMENT DATA1 DB 1,2, 3 DUP(?) DATA2 DW 1234H
DSEG ENDS ESEG SEGMENT
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DB 0AH,0BH,20
则 (1000H)=34H (1002H)=41H
(1001H)=49H (1003H)=42H
(1004H)=0AH
(1005H)=0BH
(1006H)=14H
(4) DW 定义字指令 定义程序存储器中存放的若干个字的数据或ASCII 码字符16位常数表 格式 DW<16位数据表>。
常用程序结构: 顺序程序、循环程序、分支程序、查表程序、子程
5.2 顺序与循环程序设计
❖5.2.1 顺序程序设计(又称简单程序) 既无分支,又无循环,按照顺序执行 可完成一定的基本功能,是编写复杂程序的 基础
例1:将一个字节内的两个BCD码拆开并变成ASCII码, 存入两个RAM单元。BCD码放在内RAM的20H, 转换后高半字节放到21H,低字节放22H。
第5章 汇编语言程序设计
教学目的:熟悉80C51系列单片机的汇编语言,能 够熟练编写汇编语言源程序。 教学重点:常用汇编语言程序设计方法。 教学难点: 分支程序、散转程序与子程序的设计
5.1 概 述
5.1.1 程序设计语言 ❖程序设计语言:机器语言、汇编语言、高级语言 ❖机器语言不易识别和记忆,使用不便,很难用它
SWAP A ORL A, #30H MOV 21H, A SJMP $
;BCDH数送A的低4位 21 0011
;完成转换 @R0 ;存数
H22HB0C001D0HBCD 01000L
END
回目录 上页 下页
5.2.2 循环程序
包含多次重复执行的程序段,循环结构使程序紧凑。
各个环节任务: 一.初始化部分(循环初态)
来进行程序设计。 汇编语言
图5-1 源程序、汇编程序、目的程序之间关系示意图
4-1 汇编程序约定
汇编语言程序: 用汇编语言编写的、完成特定功能的指令序列。
汇编程序: 能将汇编语言源程序转换成机器语言目标程序的
系统软件。 汇编语言程序到机器语言程序的转换过程称为汇编。
1.手工汇编:人工查指令表汇编。用于设计短小程序 或调试程序的场合。 2.机器汇编:用汇编程序进行汇编。
2. 80C51汇编程序设计中常用的伪指令
❖ (1)ORG 汇编起始指令
❖ 规定目标程序的起始地址,格式如下: 标号 操作码 操作数

ORG
表达式(exp)必须为16位地址
❖ (2) EQU 赋值指令
❖ 把操作数段中的地址或数据赋值给标号,格式如下:
❖ 标号 操作码
操作数
❖ 字符名称 EQU 数或汇编符号
BCD码0~9对应的ASCII码为30H~39H 转换时,将20H中的BCD码拆开,高四位置为“0011”即可。
即:采用先把20H中低4位 BCD码交换出来加以转换、 存放,然后再把高4位BCD 码交换至低4位加以转换、 存放。
ASCII码
RO 20HBCDMH BCDL
21 0011BCDH H22H0011BCDL
简单循环结构:循环体中不套循环。
定时
例2:试计算下列程序段执行时间。
回目录 上页 下页
程序:
ORG 1000H
MOV R0, #22H ;R0 22H MOV @R0,#0 ; 22H 0 MOV A, 20H ;两个BCD数送A
A
B00C01D01H0BB0CC0D0DHL
XCHD A, @R0 ;BCDL数送22H ORL 22H, #30H ;完成转换
RO 20HBCMDH BCDL
表示程序结构和程序功能
美国国家标准化协会ANSI(American National
Standard Institute)设定了一些常用的流程图符号如图所示:
开始
起止框

流程线
输入输出框 判断框
处理框
连接点
图:常用流程图符号
Y
?
N
五. 编制源程序
1.合理分配存储器单元和了解I/O接口地址。
2.按功能设计程序,明确各程序之间的相互关系。 3.用注释行说明程序,便于阅读和修改调试和修改。 1
循环准备工作。如:清结果单元、 设指针、设循环控制变量初值等。
二.循环体
循环工作部分:
循环初始化
循环工作
循环控制 ?
Y
N
循环结束
需多次重复处理的工作。
循环控制部分:
1.修改指针和循环控制变量。
2.检测循环条件:满足循环条件,继续循环,否则退出循环。 三.结束部分
处理和保存循环结果。
允许0次循环的循环结构:在循环工作之前检测循环条件。
BIT
P2.2
❖ 则汇编后,位地址P1.0,P1.2分别赋给变量ABC和Q4。
❖ (6) END 汇编结束指令
(7) DATA定义标号数值为指令
格式: 标号
操作码
操作数
符号名称 DATA
表达式
如 MN DATA 3000H ;MN相当于3000H
DATA与EQU的区别在于前者可以先使用后定义而 后者不行,必须先定义才能使用。
高级语言:一种面向过程且独立于计算机硬 件结构的通用计算机语言
5.1.2 汇编语言规范 汇编语言格式与伪指汇编语句(指令语句) ▪ 伪指令(指示性语句) 2)汇编语句的格式:
标号: 操作码 操作数 ;注释
3) 伪指令:控制汇编用的特殊指令,这些指令不 属于指令系统,不产生机器代码。
❖ 例3
ORG 2200H

DW 1246H,7BH,10


(2200H)=12H
(2201H)=46H

(2202H)=00
(2203H)=7BH

(2204H)=00
(2205H)=0AH
❖ (5) BIT 定义位地址指令
❖ 格式 <字符名称>BIT<位地址>
❖ 例4 ABC
BIT
P1.0

Q4
❖ 例1 AA EQU R1
;R1与AA等值
❖ 则 MOV 同。
A, AA 指令与 MOV A,R1指令结果相
(3)DB 从指定单元开始定义(存储)若干个字节的数据 或ASCII码字符,常用于定义8位数据常数表。
格式: 操作码 DB
操作数 字节常数或ASCII字符
例: ORG 1000H
DB 34H,73,’A’,’B’
(8)DS定义存储空间指令
功能:从指定地址开始保留DS之后表达式的值所 规定的存储单元。
格式: 标号 操作数
DS 表达式
例:P105 例7
5.1.3 汇编语言程序设计步骤
一.分析工作任务、确定方案和计算方法
二.了解应用系统的硬件配置、性能指标。
三.建立系统数学模型,确定控制算法和操作步骤。
四.画程序流程图
相关文档
最新文档