南邮微机原理第5章课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CS
DATA ENDS
CODE BEG: LAST:
CODE
SEGMENT USE16
;定义代码段
ASSUME CS:CODE,DS:DATA ;说明段约定
MOV AX,DATA MOV DS,AX
;BEG为启动地址 MESG
MOV CX,10
MOV AH,9
MOV DX,OFFSET MESG
INT
南邮微机原理第5章
④ STACK: 具有STACK属性的逻辑段是堆栈段,链接程序将把不同模块中具 有STACK属性的同名段链接成一个大的堆栈段。链接后的堆栈空间是链接 前各模块预留的堆栈空间之和。
程序装入后,DOS自动给SS寄存器赋值,使之等于堆栈段段基址,自动给SP赋 值,使之等于堆栈空间的字节数,使 SS:SP自动指向栈顶。
;同·286P,且汇编80386全部指令
· 486或 ·486C ;同·386,且汇编80486实模式指令
· 486P
;同·386P,且汇编80486全部指令
通常,方式选择伪指令放在程序的头部,做为源程序的第一条语句。不设置方式选 择伪指令与设置·8086是等价的。
南邮微机原理第5章
2. 段定义语句 功能:
链接程序要求:EXE文件的汇编源程序,必须有堆栈段,否则链接时发出警告 信息:
Warning no stack segment 这行信息仅仅是提醒用户注意,并不表示源程序有什么错误。
南邮微机原理第5章
⑤ AT 表达式: 该属性表明:逻辑段在定位时,其段基址等于表达式给出的值。
AT属性常和 ORG伪指令配合
21H
LOOP LAST
MOV AH,4CH
INT
21H
;返回DOS
ENDS END BEG
南邮微机原理第5章;汇编结束
‘H’ ‘E’ ‘L’ ‘L’
‘O’ DS
0D 0A ‘$’
1. 方式选择伪指令 2. 段定义语句 3. 段约定语句 4. 过程定义语句 5. 汇编结束语句 6.返回DOS语句 这类语句是与程序结构密切相关的基本语句,用来说明 MPU类型、段结构与寻址方式的段约定、目标块的定位和 源程序结束。
南邮微机原理第5章
1. 方式选择伪指令
功能: 通知汇编程序,当前的源程序指令是哪一种CPU指令,经过汇编链接之后生成的目 标程序在哪一种CPU机型上运行。 不属于选定CPU的指令均为非法指令。80486指令集是在8086、8088、80286、 80386基础上逐步发展起来的,很显然,80486的某些指令在早期的80X86系列是没有 的,为了使汇编程序能够识别,在高版本的汇编程序中,对应于每一种CPU的指令系统, 都有一个目标指令的集合。
器类型; 用段定义语句定义每一个逻辑段; 用过程定义语句定义每一个子程序; 用ASSUME语句说明段约定; 用汇编结束语句说明源程序结束; 程序在完成预定功能之后,应能安全返回DOS。
南邮微机原理第5章
.486
;方式定义
DATA SEGMENT USE16
;定义数据段
MESG DB ‘HELLO’,0DH,0AH,’$’
② WORD 字地址:表示该逻辑段的目标代码,从偶地址开始依次存放;
③ PARA (或者缺省) 节地址:表示该逻辑段的目标代码,从一个能被16整除 的地址开始依次存放;
④ PAGE 页地址:表示该逻辑段的目标代码,从一个能被256整除的地址开始 依次存放。
注意:
链接程序对于不同模块中的同名段进行链接时,对于有BYTE属性的段,总 是紧接着前一段存放,不留空闲单元。对于有WORD属性的段,也是紧接前一 段存放,最多留出一个空闲单元。
第5章 宏汇编语言
5.1 宏汇编语言的开发过程 5.2 宏汇编语言基本语句
南邮微机原理第5章
5.1 宏汇编语言的开发过程
编辑程序
Edit 等
. ASM 文件
汇编程序
TMASM
. OBJ 文件
连接程序
TLINK
. EXE 文件
wk.baidu.com
南邮微机原理第5章
5.2 宏汇编语言基本语句
5.2.1 源程序的结构
一个完整的源程序在结构上必须做到: 用方式选择伪指令说明执行该程序的微处理
如: DATA SEGMENT AT 0040H
ORG 0017H
KEYFLAG DB ?
DATA
南邮微机原理第5章
定位参数,链接参数,‘分类名’
为段定义语句的3个属性参数,可以选用1~3个,也可以全部省略。
属性参数的功能: 为源程序的汇编、链接提供必要的信息。
南邮微机原理第5章
(1) 定位参数 定位参数通知链接程序,逻辑段的目标代码在存储器中如何存放。
① BYTE字节地址:表明该逻辑段的目标代码可以从任意地址开始依次存放;
是逻辑段的定界语句,源程序中每一个逻辑段都必须用段定义语句定界。
段定义语句格式如下:
段名 SEGMENT 定位参数 链接参数 ‘分类名’ 段长度 段体
段名 ENDS
SEGMENT/ENDS
是一对段定义语句,一个逻辑段从SEGMENT语句开始,到ENDS语句结束。 段名 命名规则和变量名及标号名一样,它不能代表段体的性质,但为了 阅读方便,习惯上总是根据段体的性质起一个适当的段名。通常用DATA做 为数据段的段名,用STACK做为堆栈段的段名,CODE为代码段的段名。
南邮微机原理第5章
指令以句号开头, 格式和功能如下:
· 8086
;只汇编8086、8088指令。
· 286或 ·286C ;只汇编8086、8088及80286实模式指令
· 286P
;只汇编8086、8088及80286全部指令
· 386或 ·386C ;同·286,且汇编80386实模式指令
· 386P
南邮微机原理第5章
(2) 链接参数 链接又称组合,链接参数通知链接程序如何将不同模块中的同名逻辑段组合 成一个段
① PUBLIC:通知链接程序,把不同模块中具有PUBLIC属性的同名段,在满 足定位方式前提下,按照指定的链接顺序进行链接,组成一个逻辑段;
② MEMORY:实验证明 MEMORY属性和 PUBLIC属性是等价的; ③ COMMON:通知链接程序,把不同模块中,具有 COMMON 属性的同名 段,根据指定的链接顺序,按照 “覆盖” 方式组合成一个逻辑段。组合之后的逻 辑段体积,等于链接之前具有 COMMON 属性同名段中最大的段体;