南邮微机原理课件第六章.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南邮微机原理课件第六章

6.1 汇编源程序的编程格式 6.2 系统功能调用 6.3 程序设计举例 6.4 Windows 汇编语言编程初步 ;汇编源程序有两种编程格式: EXE文件的编程格式:只能生成扩展为EXE 的可执行文件; COM文件的编程格式:可以生成扩展为COM 的可执行文件。 COM文件的执行级别高于EXE文件,同名的BAT(批处理)文件执行级别最低。;EXE文件的编程格式 ; .486 DATA SEGMENT USE16 ;定义数据段 MESG DB ‘I AM A STUDENT!’,’$’ DATA ENDS CODE SEGMENT USE16 ;定义代码段 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX LAST: MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H ;返回DOS CODE ENDS END BEG;EXE文件的内存映象;;COM文件的编程格式 ; .486 CODE SEGMENT USE16 ASSUME CS:CODE ORG 100H BEG: JMP START MESG DB ‘HELLO’,0DH,0AH,’$’ ;用户程序数据区 START: MOV CX,10 ;设置循环次数 LAST: MOV AH,9 MOV DX,OFFSET MESG INT 21H ;显示一行HELLO LOOP LAST ;循环计数 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END BEG ;COM文件的内存映象;;返回DOS的其它方法 EXE格式文件可以借用PSP首单元的 INT 20H 返回DOS 执行完用户程序后,使CS:IP指向PSP的首单元。 DOS在装载EXE文件时将DS指向该单元,故可采取措施: 把执行程序放在一个远过程中; 用户程序在给SS、SP赋初值后,DS赋值前,用三条指令把PSP的首单元的物理地址(DS:0000H)压入堆栈,即: PUSH DS MOV AX,0 PUSH AX 返回DOS时,执行RET指令,栈顶四个字节弹出分别送CS和IP,即可执行INT 20H指令。 COM格式文件可直接执行INT 20H 指令; .486 ;方式定义 DATA SEGMENT USE16 ;定义数据段 MESG DB ‘HELLO’,0DH,0AH,’$’ DATA ENDS CODE SEGMENT USE16 ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK ;说明段约定 MAIN PROC FAR ;为什么定义成远过程? BEG: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LAST: MOV

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档