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

第3章-汇编程序设计PPT课件

第3章-汇编程序设计PPT课件

A<=5?
Y
N
(A-5)*2+R2 R2
R2 (41H)
结束
;存运费 M
-
18
3.4.2 多分支程序(散转程序)
有一类分支程序,它根据不同的输入条件或不同的运算 结果,转向不同的处理程序,称转程序的设计
这类程序通常利用JMP @A+DPTR间接转移指令实现转移。 有如下两种设计方法: 1. 查转移地址表:
GH+2 56 78
GH+4 00 08
8
4.保留字节 标号:DS (数值表达式)
作用: 指示在程序存储器中保留以标号为起始地址的若干字 节单元,其单元个数由数值表达式指定。
例如 L1:DS 32 ; 从L1地址开始保留32个存储单元。
5. 等值指令 标号 EQU(数值表达式)
表示EQU两边的量等值,用于为标号或标识符赋值。
例如: X1
EQU 2000H
X2
EQU 0FH

MAIN:
MOV DPTR,#X1 ; DPTR=2000H
ADD A,#X2 ; A=A+0FH
-
9
6. 位定义 标号 BIT [位地址] 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1。
7. 汇编结束 END 作用: 指示源程序段结束。
MOV DPL,A
MOV DPH,B
;DPTR为表中地址
CLR A
;A=0
JMP @A+DPTR ;转移
TAB:DW PR0,PR1,PR2,…..,PRn ;转移地址表
END
-
TAB 01 10
TAB+2 02 20 ..

汇编语言程序设计经典课件模版(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;定义代码段

第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)。

返回本章首页
2021/3/9
授课:XXX
12
2021/3/9


式 如 左 图 所 示 。
据 段 在 主 存 中 的 存


授课:XXX
13
【例3.28】阅读下列程序,指出此程序所完成的功能以 及在显示器上显示的内容。
DATA SEGMENT
NUM DB 01000101B
COM文件没有重定位信息,因此比EXE文件的体积小的 多。DOS装载COM文件时,也生成PSP,然后从偏移地址 1 0 0 H 开 始 依 次 存 放 用 户 程 序 。 DOS 自 动 赋 值 使 CS=DS=ES=SS=PSP 段 基 址 , FS=GS=0, 并 使 IP=100H, SP=FFFEH。
第6章 汇编语言程序设计
6.1汇编源程序的编程格式
汇编源程序有两种编程格式:一种格式只能生成扩展名为 EXE的可执行文件,称为EXE文件的编程格式;另一种格 式可以生成扩展名为COM的可执行文件,称为COM文件 的编程格式。
6.1.1 EXE文件的编程格式 EXE文件的编程格式允许源程序使用多个逻辑段,在实模式
2021/3/9
授课:XXX
7
3.打印输出(5号调用)
格式:MOV DL,待打印字符的ASCII码
MOV AH,5
INT 21H
功能:将DL寄存器中的字符送打印机打印。
4.结束调用(4CH号调用)
格式:MOV AH,4CH
INT 21H
功能:终止当前程序并返回调用程序。
2021/3/9
CODE ENDS
END BEGIN
授课:XXX
返回本节
11
综合举例
【例3.27】已知一数据段中的数据为:
DATA SEGMENT
A DW M
BUF
DB ‘AB’,0DH,0AH
C EQU 500H
B DW 0FFAAH
D DD BUF
M DB 2DUP(1) ,2DUP(2,’B’)
DATA ENDS 请画出该数据段数据存储的形式。
2021/3/9
授课:XXX
3
6.1.4 程序段前缀
6.1.5返回DOS的其他方法
对于COM文件有三种方法:
(1)直接执行INT20H;
(2)调用INT21H的0号功能。
(3)执行RET指令
对于EXE文件:
(1)调用INT 21H的4CH功能
(2)执行INT 20H,首先把执行过程包含在一个远过程中;
STACK ENDS
CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS: STACK
2021/3/9
授课:XXX
10
2021/3/9
BEGIN: MOV AX ,DATA MOV DS,AX LEA DX,STR MOV AH ,9 INT 21H MOV AH,4CH INT 21H
下,每个逻辑段的目标块不超过64KB,适合于编写大型 程序。
2021/3/9
授课:XXX
开始
1
6.1.2 COM 文件的编程格式
COM文件的编程格式必须必须符合以下规定:
(1)源程序只允许使用一个逻辑段,即代码段,不允许 设置堆栈段;
(2)程序使用的数据,可以集中设置在代码段的开始或 末尾;
(3)在代码段偏移地址(有效地址)为100H的单元,必须 是程序的启动指令;
2021/3/9
授课:XXX
6
1.单字符输入(1号调用) 格式:MOV AH,1
INT 21H 功能:从键盘输入字符的ASCII码送入寄存器 AL中,并送显示器显示。
2.单字符显示(2号调用) 格式:MOV DL,待显示字符的ASCII码 MOV AH,2
INT 21H 功能:将DL寄存器中的字符送显示器显示,如 果DL中 为〈CTRL〉+〈BREAK〉 的ASCII 码, 则退出。
(4)代码段目标小于64KB。
2021/3/9
授课:XXX
2
6.1.3EXE文件和COM文件的内存映像
EXE文件包括两部分:一部分为装入模块,另一部分 为“重定位信息”。调入后生成PSP(程序段前缀)
DOS自动给DS,ES,FS和GS赋值,使DS=ES=存放PSP的 段基址,FS=GS=0,并使CS:IP=用户程序的启动地址, SS:SP指向用户堆栈段的栈顶,在这以后,DOS才把控制 权交给用户程序。
其次在给DS赋值前,用3条指令把PSP首单元的物理地址 压入栈顶,即:PUSH DS MOV AX,0 PUSH AX,最后程 序在需要返回DOS的地方执行一条RET指令。
6.1.6 源2程021/序3/9 堆栈段的设置
授课:XXX
4
6.2 DOS系统功能调用
对8086系列机来说,MS-DOS操作系统是最主 要的操作系统。MS-DOS操作系统除了具有较为
授课:XXX
8
5.显示字符串(9号调用)
格式:LEA
DX,待显示字符串首偏移地址
MOV AH,9
INT 21H
功能:将当前数据区中以‘$’结尾的字符串送显示 器显示。
6.字符串输入(10号调用)
格式:LEA
DX,缓冲区首偏移地址
MOV
AH,10
INT 21H
功能:从键盘上输入一字符串到用户定义的输入缓冲 区中,并送显示器显示。
2021/3/9
授课:XXX
9
【例3.25】若要在屏幕上显示字符串“Example of string display!”,则程序如下:
DATA SEGMENT STRDB 0DH,0AH,‘Example of string display!$’
DATA ENDS
STACK SEGMENT STACK DB 100 DUP(0)
④ 相应中断子程序运行完毕,可按规定取得出
口参数。
返回本节
2021/3/9
授课:XXX
5
6.2 常用的DOS系统功能调用
1.单字符输入(1号调用) 2.单字符显示(2号调用) 3.打印输出(5号调用) 4.结束调用(4CH号调用) 5.显示字符串(9号调用) 6.字符串输入(10号调用)
完整的文件管理功能之外,同时还为各种应用程
序、外围设备等提供软件接口。它由三部分组成: IO.SYS、MSDOS.SYS以及。
DOS系统功能调用的方法一般可分为以下几步:
① 设置所要调用功能的入口参数。
② 在AH寄存器中存入所要调用功能的功能号。
③ INT 21H指令自动转入中断子程序入口。
相关文档
最新文档