- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
匯编语言源程序的结构及上机步骤
汇编语言源程序的结构及上机步骤
汇编语言源程序有两类:其一,经汇编后生成扩展名为.EXE的可执行文件(简称EXE文件);其二,经汇编后生成扩展名为.COM的紧凑格式文件(可执行,简称COM文件)。这两种文件具有不同的优先级,其源程序结构也有较大差异。
1.EXE文件的汇编格式
? (1) 特点:程序可带重定位信息,程序分段,每段64K,文件较长
??? 程序装入内存时,CS、SS由系统赋值,DS、ES由用户赋值
? (2)EXE汇编语言源程序一般结构如下:
; program title goes head---(程序题目放这里)
;
?;EQU? STATEMENT GO HEAD---(等值语句放这里)
; *************
?STACK SEGMENT PARA STACK STACK;堆栈段
?????? DB 20 DUP(STACK?? )
?STACK ENDS
;********************
DATASG SEGMENT??????????????????? ;数据段
; DATA GOES HEAR
?DATASG ENDS
; *********************
EXTRA SEGMENT???????????????????? ;附加段(可有可无)?????????????
; DATA GOES HEAR
?EXTRA ENDS
; *********************
CODESG SEGMENT??????????????????? ;代码段
; ----------------------
MAIN PROC FAR???????????????????? ;主过程
?? ASSUME CS:CODESG,DS:DATASG,ES:EXTRA,SS:STACK
?? PUSH DS????????????????????????? ;程序段前缀PSP
?? MOV AX,0???????????????????????? ;首地址入栈
?? PUSH AX
?? MOV? AX,DATASG?????????????????? ;将数据段的段地址传送给
?? MOV? DS,AX?????????????????????? ;段寄存器DS
?? MOV? AX,EXTRA??????????????????? ;将附加段的段地址传送给
?? MOV? ES,AX?????????????????????? ;段寄存器ES
?? ; MAIN PART OF PROGRAM GOES HEAR(程序的主要部分放这里)
?? RET????????????????????????????? ;(返回)
MAIN ENDP
;-----------------------
CODESG ENDS
;**************************
END MAIN?? ??????????????????????;程序结束
?
说明: 系统在为用户文件分配内存空间时,会多分配256个BYTE(100H)内存空间给该文件,而这256 BYTE时放在程序的机器码前面,所以这个区域称为程序段前缀(PSP Program System Prefix),此区域内所纪录的内容为用户跟系统沟通的一些相关信息. 在程序段前缀PSP的首地址中,存放了一条INT 20H(程序结束)的指令。
?
(3) EXE文件装入内存中的情况如图3.3.1所示(一开始,段寄存器DS、ES指向段前缀PSP的段地址 )
?
???? 低地址
? 程序段前缀
??? PSP
DS:0H,ES:0H
?
?? 代码段
CS:0H(IP=0)
????????????????????????
?CS:IP(指向下一条要执行的指令)
?
?? 数据段
?
?
?? 附加段
?
????????????????????????
?
?
????? 高地址
?? 堆栈段
SS:0H? ????????????????
?
SS:SP(指向栈顶)
图3.3.1
2. .COM文件的汇编格式
? (1) 特点:程序不能带可重定位信息;整个源程序只能使用一个逻辑段;程序装入内存时,CS、SS 、DS、ES指向同一段,均由系统赋值;第一条可执行指令位于段内偏移量为0100H的地方 (前面256个字节为程序段前缀PSP所在地);数据区可设置在代码段的开始或末尾(与指令代码的合计总长度小于64KB等。
? (2) COM汇编语言源程序一般结构如下:
; program title
文档评论(0)