汇编语言程序设计PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
完整的文件管理功能之外,同时还为各种应用程
序、外围设备等提供软件接口。它由三部分组成: IO.SYS、MSDOS.SYS以及COMMAND.COM。
DOS系统功能调用的方法一般可分为以下几步:
① 设置所要调用功能的入口参数。
② 在AH寄存器中存入所要调用功能的功能号。
③ INT 21H指令自动转入中断子程序入口。
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,首先把执行过程包含在一个远过程中;
CODE ENDS
END BEGIN
授课:XXX
返回本节
11
综合举例Hale Waihona Puke Baidu
【例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
12
2021/3/9


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


授课:XXX
13
【例3.28】阅读下列程序,指出此程序所完成的功能以 及在显示器上显示的内容。
DATA SEGMENT
NUM DB 01000101B
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)
其次在给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操作系统除了具有较为
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 码, 则退出。
下,每个逻辑段的目标块不超过64KB,适合于编写大型 程序。
2021/3/9
授课:XXX
开始
1
6.1.2 COM 文件的编程格式
COM文件的编程格式必须必须符合以下规定:
(1)源程序只允许使用一个逻辑段,即代码段,不允许 设置堆栈段;
(2)程序使用的数据,可以集中设置在代码段的开始或 末尾;
(3)在代码段偏移地址(有效地址)为100H的单元,必须 是程序的启动指令;
④ 相应中断子程序运行完毕,可按规定取得出
口参数。
返回本节
2021/3/9
授课:XXX
5
6.2 常用的DOS系统功能调用
1.单字符输入(1号调用) 2.单字符显示(2号调用) 3.打印输出(5号调用) 4.结束调用(4CH号调用) 5.显示字符串(9号调用) 6.字符串输入(10号调用)
第6章 汇编语言程序设计
6.1汇编源程序的编程格式
汇编源程序有两种编程格式:一种格式只能生成扩展名为 EXE的可执行文件,称为EXE文件的编程格式;另一种格 式可以生成扩展名为COM的可执行文件,称为COM文件 的编程格式。
6.1.1 EXE文件的编程格式 EXE文件的编程格式允许源程序使用多个逻辑段,在实模式
COM文件没有重定位信息,因此比EXE文件的体积小的 多。DOS装载COM文件时,也生成PSP,然后从偏移地址 1 0 0 H 开 始 依 次 存 放 用 户 程 序 。 DOS 自 动 赋 值 使 CS=DS=ES=SS=PSP 段 基 址 , FS=GS=0, 并 使 IP=100H, SP=FFFEH。
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
(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才把控制 权交给用户程序。
授课:XXX
8
5.显示字符串(9号调用)
格式:LEA
DX,待显示字符串首偏移地址
MOV AH,9
INT 21H
功能:将当前数据区中以‘$’结尾的字符串送显示 器显示。
6.字符串输入(10号调用)
格式:LEA
DX,缓冲区首偏移地址
MOV
AH,10
INT 21H
功能:从键盘上输入一字符串到用户定义的输入缓冲 区中,并送显示器显示。
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
相关文档
最新文档