第4章汇编语言程序设计PPT教学课件

合集下载

[所有分类]第4章 汇编语言程序设计ppt课件

[所有分类]第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)

汇编语言第4章PPT课件

汇编语言第4章PPT课件
3
2. 汇编语言程序设计与执行过程
输入汇编语言源程序(EDIT) 汇编(MASM) 链接(LINK) 调试(TD)
源文件 . ASM 目标文件 .OBJ 可执行文件.EXE 最终程序
4
3. 汇编语言源程序结构
由多个逻辑段组成,包含: 代码段:存放源程序的所有
数据段名 SEGMENT …
数据段名 ENDS
26
一、数据定义伪指令
用途:定义变量类型,给存储器赋初值,或仅给变量分配存储单 元,而不赋予特定的值。
格式: [变量名] DB 操作数;定义字节 [变量名] DW 操作数;定义字 [变量名] DD 操作数;定义双字 [变量名] DQ 操作数;定义8个字节 [变量名] DT 操作数;定义10个字节
操作数——是赋给变量的初始值,可以有一个,也可以有多个, 但不能超出数据类型范围。操作数可以是数值、字 符串、?、或者DUP。
CLC
;CF=0
LPER:MOV AL,DATA2[SI]
ADC DATA1[SI],AL
INC SI
DEC CX
JNZ LPER
MOV AH,4CH
INT 21H
;返回DOS
CODE ENDS
END START
7
二、汇编语言语句类型及格式
1. 汇编语言语句分类
指令性语句
CPU执行的语句, 能够生成目标代码
段 值 变量所在段的段地址 偏移量 变量单元地址与段首地址之
间的位移量。 类 型 字节型、字型和双字型
14
3)表达式
组成:操作数:常量、寄存器名字、存储器操作数 运算符:
算术运算 逻辑运算 关系运算 取值运算和属性运算 其它运算
15

第04章 汇编语言程序设计 39页 0.2M PPT版

第04章 汇编语言程序设计 39页 0.2M PPT版

MOV AL,10100000B OR 00000101B ;(AL)←10100101B
例4-4 关系运算符的应用
MOV AX,5 EQ 101B ;(AX)←0FFFFH
MOV BH,10H GT 16 ;(BH)←0
例4-5 数值返回运算符的应用
K1 DB 30H,31H,32H
K2 DW 4041H,4043H
(4)STACK
(5)MEMORY
(6)AT表达式
4. 类别名
返回
4.2.4 段寻址伪指令
格式:
ASSUME 段寄存器名:段名,段寄存器名:段名,……
例4-15 求从NUM开始的12个无符号字节数的和,结果放在SUM字单元中。
DATA SEGMENT NUM DB 95H,83H,36H,2DH DB 33H,22H,1AH,34H DB 62H,45H,75H,49H SUM DW ?
例4-13
STR1 DB ‘COMPUTER’ ;定义一个字符串,字符串的首地址为STR1 STR2 DW ‘AA’,‘BC’,‘DE’ ;给两个字符组成的字符串分配两个字节存储单元 DATA DW ?,?,? ;为DATA预留6个存储单元
例4-14
DATA1 DB 20 DUP(?) ;为变量DATA1分配20个字节的空间,初值为任意值 DATA2 DW ? ;为变量DATA2分配2个字节的空间,初值为任意值 DATA3 DB 20 DUP(30H) ;为变量DATA3分配20个字节的空间,初值均为30H
K3 DW 20H DUP(0)
K4 DD 50515253H
MOV AL,TYPE K1 ;等效于MOV AL,1
MOV AH,TYPE K2 ;等效于MOV AH,2

第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

第4章汇编程序设计PPT课件

第4章汇编程序设计PPT课件
第7页/共70页
初值表
• 初值表是用逗号分隔的参数 • 主要由数值常数、表达式或?、DUP组成
?——表示初值不确定,即未赋初值; DUP——表示重复初值 DUP的格式为: 重复次数 DUP(重复参数)
第8页/共70页
• 例如 BIGGEST DD 12345678H 在汇编时就会初始化,如图所示。它定义了一个双字变量,且给了初始值。
SEGMENT和ENDS语句把汇编语言源程序分 成段,这些段就相应于存储器段,在这些存储 器段中,存放相应段的目标码。
汇编程序必须知道程序的段结构,并知道 在各种指令执行时将访问哪一个段由段寄存器 所 指 向 。 这 个 信 息 是第1由7页A/共S70S页U M E 语 句 提 供 的 。
通常在汇编语言的源程序中,至少要定义 码段(指令段)、堆栈段和数据段,有时还要定 义附加段。每一个段必须有一个名称,如 MY_DATA、MY_CODE等。一个段由命令SEGMENT 开始,由命令ENDS结束,它们必须成对出现, 而且它们的语句中必须有名称,名称必须相同。 最后用语句END来结束整个源程序。
[分析]因为需要重复进行数据大小的比较,所 以可设计为循环程序结构形式,设计要点是: ①找出循环的规律;②确定控制循环的方法
第30页/共70页
• 参考程序:
DATA SEGMENT BUF DB 26, 78, 196, 45, 16, 9 CNT EQU $-BUF
DATA ENDS CODE SEGMENT
NAME1
SEGMENT
语句

语句
NAME1
ENDS
NAME2
SEGMENT
语句

语句
NAME2
ENDS
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图 分支程序结构流程图
2020/12/11
《单片机应用技术》教学课件
12Leabharlann 第4章 汇编语言程序设计条件满足? Y
A
4.2.2 分支程序结构
第4章 汇编语言程序设计
目的:1.进一步熟悉指令系统 2.会编写简单的程序 3.上机训练
内容:4.1 汇编语言程序设计概述
4.2 三种程序结构 4.3 程序设计举例
2020/12/11
《单片机应用技术》教学课件
1
第4章 汇编语言程序设计
4.1 汇编语言程序设计概述
所谓程序设计,就是按照给定的任务要求,编写 出完整的计算机程序。要完成同样的任务,使用的方 法或程序并不是唯一的。
汇编后: (1000H)=12H (1001H ) = 34H
(1002H ) = 00H ( 1003H ) = ABH (1004H ) =00H (1005H) =0AH
2020/12/11
《单片机应用技术》教学课件
7
第4章 汇编语言程序设计
• (6)定义存储区伪指令DS
• 功能:从指定地址开始预留一定数量的内 存单元,以备源程序执行过程中使用。预
(4) 编写源程序
(5) 程序优化。
(6)上机调试、修改和最后确定源程序。
2020/12/11
《单片机应用技术》教学课件
10
第4章 汇编语言程序设计
4.2.1 顺序程序设计
顺序结构程序是一种最简单、最基本的程序,按照程序编 写的顺序依次执行。
【例4-1】两个多字节数加法
1.两个三字节无符号相加,其中被加数在内部RAM的 50H、51H和52H单元中;加数在内部RAM的53H、54H和 55H单元中;要求把相加之和存放在50H、51H和52H单元中 进位存放在位寻址区的00H位中。
图4-4 DS指令示意图
《单片机应用技术》教学课件
8
第4章 汇编语言程序设计
• (7)位地址赋值指令BIT • 格式 : 字符名称 BIT 位地址
• 功能 : 把BIT右边的位地址赋给它左边的字符名称。被 定义的位地址在源程序中可用字符名称来表示。例如

ORG 0200H
• A1 BIT 01H
• A2 BIT 30H.2
址。如: ORG 8000H
START: MOV A ,#30H ……
该指令规定第一条指令从地址8000H单元开始存放,即标号 START的值为8000H。
2020/12/11
《单片机应用技术》教学课件
4
第4章 汇编语言程序设计
*(2)汇编结束伪指令END(整个源程序末尾处)
格式:END 功能:结束汇编。 例如:
2020/12/11
《单片机应用技术》教学课件
11
第4章 汇编语言程序设计
4.2.2 分支程序结构
分支程序是通过转移指令实现的。分单分支、多分 支程序结构。
单分支程序:使用条件转移指令实现,即根据条
件对程序的执行进行判断,满足条件则进行程序转移, 否则,程序顺序执行。常用的条件转移指令有:JZ、 JNZ、CJNE、DJNZ。以位状态为条件的转移指令: JC、JNC、JBJNBJBC
ORG 2000H START: MOV A ,# 00H
…… END
(3)赋值伪指令EQU(便于修改程序) 格式:字符名称 EQU 赋值项 例如:
TEST EQU R0
MOV A,TEST
2020/12/11
《单片机应用技术》教学课件
5
第4章 汇编语言程序设计
*(4)定义字节指令DB 格式:[标号:] DB 8位二进制数表 功能:将DB右边的单字节数据依次存放到以左边符号为起始
留单元的数量由表达式的只预定。例如

ORG 0200H

DS 05H

DB 30H,40H



END
• 汇编后,从0200H单元开始留出5个字
节的存储单元,然后从0205H单元开始存
放30H和40H。
ROM
0206H
40H
0205H
30H
0204H
0203H
0202H
0201H
0200H
2020/12/11

MOV C, A1 ;Cy ←(01H)

MOV A2,C ;30H.2←Cy



END
2020/12/11
《单片机应用技术》教学课件
9
第4章 汇编语言程序设计
4.1.3 汇编语言程序设计步骤
使用汇编语言设计一个程序大致上可分为以下几个步骤。
(1) 分析题意,明确要求。
(2) 确定算法。
(3) 画程序流程图,用图解来描述和说明解题步骤。
2020/12/11
《单片机应用技术》教学课件
6
第4章 汇编语言程序设计
*(5)定义字命令 DW 格式:[标号:] DW 16位二进制数表 功能:把指令右边的双字节数据依次存入指定的连续存储单元 中。高位在前,低位在后:其数据的高字节放到低地址单元,低 字节存放到高地址单元。 例如: ORG 1000H TAB: DW 1234H , 0ABH , 10
地址的连续单元中。例如:
ORG 1000H TAB: DB 23H,73, “B” TABl: DB 110B 以上伪指令经汇编以后,将对从1000H开始的若干内存单元 赋值:
(1000H)=23H (1001H)=49H (1002H)=42H (1003H)=06H 其中42H是字符B的ASCII码,其余的十进制数(73)和二进 制数(110B)也都换算为十六进制数了。
前面我们学过了汇编语言形式的指令系统,本章 重点介绍汇编语言程序结构以及如何利用汇编语言指 令进行程序设计的方法。
2020/12/11
《单片机应用技术》教学课件
2
第4章 汇编语言程序设计
• 4.1.1概念: • 1.机器语言:机器直接识别和执行的语言,但编写繁琐费
时、理解和记忆较困难,易出错。 • 2.汇编语言:一种符号化的语言,指令用助记符表示。 • 3.高级语言:面向过程而独立于机器的通用语言。 • 4.汇编语言源程序的编辑和汇编
编辑软件输入源程序——汇编(自动完成)——结果
2020/12/11
《单片机应用技术》教学课件
3
第4章 汇编语言程序设计
4.1.2 伪指令 伪指令并不是真正的指令,也不产生相应的机器码,它们只
是在计算机将汇编语言转换为机器码时,指导汇编过程,告诉汇 编程序如何汇编。仅在源程序中出现,汇编后消失。
*(1)汇编起始伪指令ORG 格式:ORG 16位地址 功能:规定跟在其后的源程序经汇编后的目标程序的起始地
相关文档
最新文档