电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微机课件第6章1章节

99页
  • 卖家[上传人]:E****
  • 文档编号:90924348
  • 上传时间:2019-06-20
  • 文档格式:PPT
  • 文档大小:700.50KB
  • / 99 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、6.1 汇编源程序的编程格式 6.2 系统功能调用 6.3 程序设计举例 6.4 Windows 汇编语言编程初步,第6章 汇编语言程序设计,汇编源程序有两种编程格式: EXE文件的编程格式:只能生成扩展名为EXE 的可执行文件; COM文件的编程格式:可以生成扩展名为COM 的可执行文件。 COM文件的执行级别高于EXE文件,同名的BAT(批处理)文件执行级别最低。,6.1 源程序的编程格式,EXE文件的编程格式,此格式允许源程序使用多个逻辑段(包括数据段、堆栈段、代码段及其它逻辑段); 在实模式下,每个逻辑段的目标块不超过64K; 适合编写大型程序。,.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 END

      2、S END BEG,EXE文件的内存映象,磁盘上的EXE文件包括两部分: 装入模块和重定位信息 DOS装载EXE文件时,根据重定位信息完成装入模块的重定位。同时,重定位信息被丢弃。 DOS在同一内存块的用户程序上方(低地址处)偏移地址为00HFFH的单元处自动生成一个 256字节的数据块,称为程序段前缀(PSP)。 DOS自动使DS=ES=存放PSP的段基址,使CS:IP指向用户程序的启动地址,INT 20H,数据段,代码段,堆栈段,DS,ES,CS:IP,SS,SP,注:DOS把EXE文件调入内存后,自动给SS、SP赋初值, 程序中给SS、SP赋初值的指令可省略。,PSP(256字节),用户程序,COM文件的编程格式,汇编语言要求此格式必须符合以下规定: 源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段; 程序使用的数据,可以集中设置在代码段的开始或未尾; 在代码段偏移地址(有效地址)为100H的单元,必须是程序的启动指令; 代码段目标块小于64K。 COM文件的编程格式适合于编写中小型程序。,.486 CODE SEGMENT USE16 ASSUME CS:CODE ORG

      3、 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文件的内存映象,磁盘上的COM文件没有重定位信息,体积比EXE文件小。 DOS装载COM文件时,在同一内存块的用户程序上方(低地址处)偏移地址为00HFFH的单元处自动生成一个 PSP; 然后从偏移地址100H处开始存放用户程序; DOS自动使CS=DS=ES=SS=存放PSP的段基址,使IP=100H,SP=FFFEH。,INT 20H,代码段,堆栈段,CS,DS ES,SS,IP,(FFFEH) SP,PSP(256字节),用户程序 (64K-256),返回DOS的其它方法 EXE格式文件可以借用PSP首单元的 INT 20H 返回DOS 执行完用户程序后,使CS:IP指向PSP的首单元。 DOS在

      4、装载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 AH,9 MOV DX,OFFSET MESG INT 21H ;显示显示一行HELLO RET ;返回DOS MAIN ENDP CODE ENDS END BEG

      5、 ;汇编结束,源程序清单:,6.2 系统功能调用,DOS的4个组成部分中IBMBIO.COM和IBMDOS.COM是DOS系统的核心模块 IBMBIO.COM为基本I/O设备处理程序,与BIOS一起完成数据输入和数据输出的基本操作 IBMDOS.COM是磁盘文件管理程序;,这两个模块均有若干子功能可以被用户程序调用,称为“DOS功能调用”和“BIOS功能调用”(系统功能调用),PC-DOS的模块结构,DOSShell,DOSKernel,DOSBIOS,1. 命令处理程序 命令解释,外部命令装入等。,2. DOS 内核程序 MSDOS. SYS包括文件管理、磁盘管理、 DOS功能调用等。 该模块以系统功能调用的方式供用户使用, INT 21H,3. DOS基本输入输出程序模块 IO.SYS管理输入输出设备 (显示器、键盘、打印机、串行通信设备等) 的驱动,并转换为ROMBIOS固件的设备 控制程序的请求。,DOSShell,DOSKernel,DOSBIOS,DOS命令,ROMBIOS,显 示 器 卡,盘 控 制 卡,串行口卡,键盘接口,打印机卡,应用层,DOS 服务层,ROMBIOS

      6、 服务层,硬件控制层,应用程序,INT 10H,INT 13H,INT 14H,INT 16H,INT 17H,INT 21H,高端,用户程序通过INT 21H软中断指令调用DOS系统功能,调用模式如下: MOV AH,功能号 设置入口参数 INT 21H 分析出口参数 功能号: 代表一个不同功能的子程序,DOS功能调用,调用模式: MOV AH,功能号 设置入口参数 INT 21H 分析出口参数,DOS功能调用,【功能号01H】 等待键入一个字符,有回显,响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码。若AL0,表明按键是功能键、光标键,需再次调用本功能,才能返回按键的扩展码。,调用方式: MOV AH,1 INT 21H,DOS功能调用,【功能号02H】 显示一个字符,响应Ctrl_C。 入口参数:DL待显字符的ASCII码。 出口参数:无。 本功能在屏幕的当前位置显示一个字符,光标 右移一格,如果是在一行末尾显示字符,则光标 返回下一行的开始格。如果是在屏幕的右下角 显示字符,光标返回时屏幕要上滚一行。 注意:该功能要破坏AL寄存器的内容。,DOS功能调用,

      7、Eg: MOV DL , A MOV AH , 2 INT 21H 屏幕上显示一个字符A,【功能号07H】 等待键入一个字符,无回显,不响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码,若AL0,需再次调用该项功能才能在AL中得到按键的扩展码。 【功能号08H】 等待键入一个字符,无回显,响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码,若AL0,需再次调用该项功能才能在AL中得到按键的扩展码。 【功能号09H】 显示字符串,响应Ctrl_C。 入口参数:DS:DX字符串首地址,字符串必须以$(即ASCII码24H)为结束标志 出口参数:无。 该项功能从屏幕当前位置开始,显示字符串,遇到结束标志$时停止,$字符并不显示 注意:9号功能破坏AL寄存器的内容,DOS功能调用,Eg:在屏幕上显示I AM A STUDENT!,分析:将I AM A STUDENT!定义在数据段,并在!后加一个字符$,利用9号DOS功能调用,即可完成显示,DOS功能调用,.486 DATA SEGMENT USE16 ;定义数据段 MESG DB I AM A STUDE

      8、NT!,$ 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,源程序清单:,【功能号0AH】 等待键入一串字符送用户程序数据缓冲区。 入口参数:DS:DX指向放键入字符的缓冲区 缓冲区定义形式规定为:,DOS功能调用,EG: BUF DB 100 DB ? DB 100 DUP(?),DOS功能调用,出口参数:存放于缓冲区的字符串,以回车键结尾 调用方式: MOV AH,0AH INT 21H 注意:缓冲区定义的第二个字节由系统设置,其余 由用户定义; 若输入的字节数少于定义的字节数,缓冲区 其余字节补零; 若输入的字节数大于定义的字节数,后来输入 的字符丢弃且响铃警告。,DOS功能调用,例: 人机会话程序,Li mei?(Y/N),What is your name?,1.会话内容及设计思路,L

      9、i nei ;前者是程序给出的询问信息, 后者是用户键入的回答,N ;程序复制的姓名和回答提示,Li mei ;再次问答,Li nei?(Y/N),What is your name?,Y,问题提出: 如何设置程序运行所需的数据?方法如下: 数据设置在程序的数据段 程序运行时通过人机会话临时键入 程序装入时通过命令行参数给出 本例学习前两种方法,并以此学习DOS功能调用,DOS功能调用,2. 框图:,N,DOS功能调用,DATA SEGMENT USE16 MESG1 DB 0DH,0AH DB What is your name ?$ MESG2 DB ?(Y/N)$ BUF DB 30 DB ? DB 30 DUP(? ) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DA:DATA BEG: MOV AX,DATA MOV DS,AX AGAIN: MOV AH,9 MOV DX,OFFSET MESG1 INT 21H ;询问姓名 MOV AH,0AH MOV DX,OFFSET BUF INT 21H ;接收键入字符串 MOV BL,BUF+1 MOV B

      《微机课件第6章1章节》由会员E****分享,可在线阅读,更多相关《微机课件第6章1章节》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.