- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理及应用CH5 8086/8088汇编语言程序设计
? 编制汇编语言源程序时,首先要使用段定义伪指令和段寻址伪指令来构造一个由若干指令和数据组成的程序。构造一个源程序的框架结构有如下两种格式:;第一种格式:
……
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END BEGIN
;第二种格式:
……
RET ;取程序段前缀首地址
MAIN ENDP
CODE ENDS
END BEGIN;区别:两种格式的本质区别在于返回DOS的方法不同:
对于第一种格式,采用了调用DOS系统的4CH功能,返回DOS。具体方法是:在要返回DOS处,安排如下两条指令:
MOV AH,4CH
INT 21H
对于第二格式,DOS返回方法是调用20H类型的中断服务程序。;段名 SEGMENT [定位类型][组合类型][类别]
.
.
.
段名 ENDS;定位类型,定位类型参数是对该段起始地址的定位。定位类型参数主要有下面4种:
①PARA:指定定位段的起始地址必须在节的整数边界,即段的首地址必须是16的整数倍。当定位类型缺省时,就当成PARA。
②BYTE:指定定位段的起始地址定位在存储单元的任何字节地址。
③WORD:指定定位段的起始地址定位在字的边界,即段的首地址必须是偶数。
④PAGE:指定定位段的起始地址定位在页的边界,即段的首地址必须是256的整数倍。;组合类型:组合类型参数主要提供了各个逻辑段之间的组合方式
①NONE:该段与其他同名段不进行连接,各段独立于存储器中,NONE可作为缺省参数。
②PUBLIC:该段与其他模块中的同名段连接时,由低地址到高地址连接起来,组成一个逻辑段,连接次序由连接命令指定。
③COMMON:该段在连接时与其他模块中的同名段有相同的起始地址,采用覆盖的方式在存储器中存放,连接长度为各分段中最大长度。 ;④AT表达式:定位该段的起始地址在表达式所指定的节(16的整数倍)边界上。当用户要求某个逻辑段在指定节的边界上时,就要用AT参数来实现。
⑤STACK:指定该段为堆栈段,此参数在堆栈段中不可省略。
⑥MEMORY:定位该段与其他模块中的同名段有相同的首地址,采用覆盖的方法在存储器中组合连接。其功能与COMMON相似,区别是第一个带MEMORY参数的逻辑段覆盖??其他同名段的最上层,其他带此参数的同名段按照COMMON方式处理。 ;“分类名”(CLASS NAME)
其主要作用是汇编程序连接时将所有的分类名相同的逻辑段组成一个段组。;在连接之前已定义两个目标模块如下:
模块1 SSEG SEGMENT PARA STACK
DSEG1 SEGMENT PARA PUBLIC Data
DSEG2 SEGMENT PARA
CSEG SEGMENT PARA Code
模块2 DSEG1 SEGMENT PARA PUBLIC Data
DSEG2 SEGMENT PARA
CSEG SEGMENT PARA Code ;以上两个模块分别汇编后产生 .OBJ 文件,经连接程序连接后产生的 .EXE模块如下:
模块1 CSEG SEGMENT PARA Code
模块2 CSEG SEGMENT PARA Code
模块1+2 DSEG1 SEGMENT PARA PUBLIC Data
模块1 DSEG2 SEGMENT PARA
模块2 DSEG2 SEGMENT PARA
模块1 SSEG SEGMENT PARA STACK
; 顺序程序结构是指完全按照顺序逐条执行的指令序列。
图5.1 顺序程序的结构形式 ;例5.1:试分别用汇编语言源程序的两种框架结构编制程序,求出表达式:(X×4-Y)/2的值,并保存到RESULT存储单元中,其中X,Y均为字节变量。;参考程序1:
DATA SEGMENT ;数据段
X DB 2
Y DB 4
Z DB ? ;定义变量
DATA ENDS
STACK SEGMENT PARA STACK
DW 20H DUP(0)
STACK ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA,SS:STACK;BEGIN:MOV AX,DATA
您可能关注的文档
- 平面构成设计教程(第2版)-PPT课件第十三章打散构成的创意设计.ppt
- 9淘宝开店大全教程.pptx
- 9第九章行政组织结构教程.ppt
- 9米高梁模板支撑(门架)教程.doc
- 平面设计三大构成基础:概念、要素、形式.doc
- 9第九章数字图像处理之图像分割教程.ppt
- 平面构成第一节.ppt
- 9第九章_列车调度指挥和调度集中教程.ppt
- 9统计指数教程.ppt
- 平面构成设计教程(第2版)-PPT课件第十章密集构成的创意设计.ppt
- 江苏省百校联考2024-2025学年高一下学期5月月考语文试卷及答案.docx
- 2025年高考作文素材积累之考前必读时评文章16篇.docx
- 2025年高考作文备考押题预测:中国精神.docx
- 2025届湖北省恩施州巴东县中考生物最后冲刺卷含解析.doc
- 云南省临沧市镇康县重点中学2025届十校联考最后历史试题含解析.doc
- 江苏省靖江外国语学校2025届中考适应性考试生物试题含解析.doc
- 山东省淄博市周村县2025届中考化学全真模拟试卷含解析.doc
- 迪卡侬环境要求详解.pptx
- DB32_T 4502-2023 企业质量文化建设评价规范.pdf
- DB32_T 4489-2023 市场监管行政审批远程评审工作规程.pdf
文档评论(0)