版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8086汇编语言上机调试及基本操作题目类型深圳大学实验报告课程名称:微机原理实验实验名称:8086汇编语言上机调试及基本操作学院:物理科学与技术学院组号:指导教师:李雄军报告人:林成业学号:2022年__实验地点:科技楼302实验时间:2022年9月24日实验报告提交时间:2022年10月15日深圳大学微机原理与应用实验一、实验目的:(1)掌握常用DEBUG命令:G,D,R,T,U,Q。 (2)掌握工具软件__。(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。 (4)掌握简单的数值转换算法二、实验原理1.实验说明:计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。.程序框图:对于0-999(即000H-3E7H)范围内的二进制数.参考程序:将AX中的三位数拆为三个BCD码,并存入Result开始的三个单元DATA__;数据段RESULT_1DB1RESULT_2DB1RESULT_3DB1DATAENDSSTACK__STACK;堆栈段STADB64DUP(0)STACK_TOPDB0STACKENDSCODE__;代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK深圳大学微机原理与应用实验START:MOVAX,DATAMOVDS,AX;设置数据段MOVAX,STACKMOVSS,AX;设置堆栈段LEASP,STACK_TOP;设置栈顶指针MOVAX,2afHMOVCL,100DIVCLMOVRESULT_1,AL;除以100,得百位数MOVAL,AHMOVAH,0MOVCL,10DIVCLMOVRESULT_2,AL;余数除以10,得十位数MOVRESULT_3,AH;余数为个位数MOVAX,4C00H;返回DOSINT21H;CODEENDSENDSTART;最后一行要按回车键三、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。3)分别在debug和emu8086下调试该可执行文件,给出程序运行时的各段地址(CS=?,DS=?SS=?ES=?)举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释;试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?4)写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的主要依据。5)实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法和微机原理学习方法作出总结。四、实验结果与分析.建立汇编源程序ASM文件。DATA__数据段RESULT_1DB1结果1是低八位,初始量为’1’RESULT_2DB1结果1是低八位RESULT_3DB1结果1是低八位DATAENDS结束数据段STACK__STACK堆栈段STADB64DUP(0)堆栈段初始化深圳大学微机原理与应用实验STACK_TOPDB0栈顶初始化STACKENDS结束堆栈段CODE__代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:假定伪指令MOVAX,DATA把具体的DATA送至寄存器中MOVDS,AX设置数据段MOVAX,STACK把STACK送至寄存器中MOVSS,AX设置堆栈段LEASP,STACK_TOP设置栈顶指针MOVX,2afh把立即数2afh送至寄存器MOVCL,100被除数为100DIVCL8位寄存器MOVRESULT_1,AL除以100,得百位数MOVAL,AH余数为下一个除数MOVAH,0高8位清零MOVCL,10被除数是10DIVCL8位寄存器MOVRESULT_2,AL余数除以10,得十位数MOVRESULT_3,AH余数是个位数MOVAX,4C00H返回DOSINT21HCODEENDS结束代码段ENDSTART最后一行按回车键.分别在DOS和Windows下编译、连接生成可执行深圳大学微机原理与应用实验深圳大学微机原理与应用实验深圳大学微机原理与应用实验深圳大学微机原理与应用实验文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。(1)DOS深圳大学微机原理与应用实验(2)Windows深圳大学微机原理与应用实验.分别在debug和emu8086下调试该可执行文件,给出程序运行时的各段地址(CS=?,DS=?SS=?ES=?)举例说明debug的t,d,g,u等命令操作方法并对寄存器的变化作出解释;试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果;如何观察转换结果的变化?(1)debug和emu8086调试可执行文件的各段地址Debug:深圳大学微机原理与应用实验Emu8086:T-单步执行程序命令用法:-T要执行的指令条数如:-丁1U-反汇编命令用法:-U代码段地址:起始偏移地址如:-UCS:99D-显示内存中的数据命令用法:-D数据段地址:存放数据的偏移地址如:-DDS:01G-连续执行程序命令用法:-G二代码段地址:指令的起始偏移地址指令的结束偏移地址如:-G=CS:100106(3)试改变被转换的三位数,并解释转换过程中标志寄存器中各标志位的结果将529H转换成123H529H123H深圳大学微机原理与应用实验五.实验总结从本次上机实验,初步了解DOS和—工具,学会了DOS.BOX和emu8086的使用,且在计算机上进行了一些简单数值进制转换。在编写源程时,要多注意各个段的格式,且要先确定流程图,才能一一对应的写出相应的代码。而在实验中,因没有及时在实验前了解DEBUG命令中U、D、G、R、T、Q等命令的具体含义,使得实验过程有点慢。但是在根据实验内容慢慢进行调试程序的过程中,经过在与同学的讨论之后,更加深刻地了解每一步每个代码有什么意义以及给出程序运行时的各段地址。六、思考题1.用单步执行命令t运行程序,运行至Umovax,4c00h,int21h指令后,cs和IP寄存器内容前后有何变化?产生变化的原因是什么?CS由17F9变为00A7,IP由002A变为1165。处理器用CS寄存器和IP寄存器中得内容组成的逻辑地址取下一条要执行的指令。2.试写出将BCD转换成二进制码的汇编程序。DATA__定义数据段RESULT_1DB1为符号RESULT_1保留一个字节DATAENDS定义数据段结束STACK__STACK定义堆栈段STADB64DUP(0)将指针为64的字节数推入堆栈STACK_TOPDB0设置栈顶指针为0STACKENDS堆栈段定义结束CODE__定义代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK规定CS,DS,EX和SS的内容START:MOVAX,DATADS初始化为DATAMOVDS,AX设置数据段MOVAX,STACKSS初始化为STACKMOVSS,AX设置堆栈段LEASP,STACK_TOP设置栈顶指针__PROCPUSHAXPUSHBXPUSHCXPUSHDX深圳大学微机原理与应用实验PUSHDI现场保护MOVCX,316位二进制码转换成压缩BCD码最多需要3个字节RE:SUBDX,DX清零DIVWORDPTR0AHAX除于10MOVBL,DL将余数保存因为DL=DXSUBDX,DXDX清零DIVWORDPTR0AHSHLDL,4抬到高位ORBL,DL压缩BCD码MOV[DI],BL保存压缩BCD码INCDI准备保存下一个DECCX计数JNERE重复POPDIPOPDXPOPCXPOPBXPOPAXRETMOVAX,4C00H返回DOSINT21H目标指向21HCODEENDS代码段结束ENDSTART最后一行要按回车深圳大学微机原理与应用实验课程编号题目类型深圳大学实验报告课程名称:微机原理实验实验名称:二进制数到BCD码的转换学院:物理科学与技术学院组号指导教师:李雄军报告人:林成业学号:2022年__实验地点:科技楼302实验时间:2022年10月15日深圳大学微机原理与应用实验实验报告提交时间:2022年10月29日一、实验要求:将AX中的一个二进制数(对应的十进制数范围是0-__),转换成压缩性BCD码表示的十进制,并从屏幕输出转换结果。要求用减法实现,并比较与除法方法进行运行速度比较。二、实验目的:(1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作;(2)掌握完整8086汇编的程序设计编写方法;(3)掌握简单的数值码制转换方法;(4)掌握键盘输出的DOS功能调用方法。三、实验原理1、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制、码制之间的转换是一种基本功;利用DOS功能调用实现在屏幕上显示字符或数字的方法是本课程的基本要求之一。2、提示:实现以上转换有两种方法:1)除法;2)减法。即三位数先循环减1000,直到不够减了,做减法的次数就是百分位的结果;将不够减之前一次的余数恢复,再循环减去100,直到不够减了,做减法的次数就是十分位的结果;最后恢复的正余数就是个位的结果。以下是三位数的转换方法程序框图(供参考)3、除法方法的参考程序:;将AX中的三位数拆为三个BCD码,并存入Result开始的叁个单元DATA__;数据段RESULT_1DB0RESULT_2DB0RESULT_3DB0;定义三个字节变量,分别用来存放百分位、十分位和个位数DATAENDSSTACK__STACK;堆栈段STADB64DUP(0);开辟100单元作为堆栈空间STACK_TOPDB0STACKENDSCODE__;代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:深圳大学微机原理与应用实验MOVAX,DATAMOVDS,AX;设置数据段MOVAX,STACKMOVSS,AX;设置堆栈段LEASP,STACK_TOP;设置栈顶指针MOVAX,123;被转换的数先放入AX中MOVCL,100DIVCLMOVRESULT_1,AL;除以100,得百位数MOVAL,AHMOVAH,0MOVCL,10DIVCLMOVRESULT_2,AL;余数除以10,得十位数,存入RESULT_2MOVRESULT_3,AH;余数为个位数,存入RESULT_3MOVAX,4C00H;返回DOS(两句)INT21H;CODEENDSENDSTART;最后一行要按回车键4.补充提示:1)屏幕显示字符的方法(DOS功能调用2,参考课本P131)深圳大学微机原理与应用实验深圳大学微机原理与应用实验MOVAH,02;送显示功能号到AHMOVDL,’1';被显示字符的ASCII码‘1’送DLINT21H;DOSINT21功能调用2)空格、回车、换行的ASCII码分别是20H,0DH,0AH3)跳转、循环语句LOOPNEXT的使用举例:若要用减法求AL中的内容为5的多少倍,核心代码如下:MOVCL,0;计数器清零NEXT:SUBAL,5;减5JCOVER;有借位说明不够减INCCL;否则够减,计数器加1JMPNEXT;无条件跳转OVER:ADDAL,5;最后恢复不够减时AL的余数;至此,CL中就是所求结果(即AL内容的5的倍数)四、实验及报告要求:.简要说明算法,并画出正确的程序流程图;.给出完整正确的源程序代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工业机器人技术在电子装配中的自动化应用
- 耳鼻喉科护理工作中的创新与实践
- 2026年孵化器行业“二房东”模式转型困境
- 2026年传统工艺技术创新与老字号品牌复兴
- 2026年戒烟热线服务中心建设与运营管理可行性
- 练习4 《行文逻辑分析与理据关系分析》 同步练习 (含答案解析)2027年高考一轮总复习
- 2026年小学数学(运动场跑道)周长与面积测量
- 2026年教育督导反馈问题整改落实情况汇报
- 项目管理合同续签及终止协议
- 办公自动化设备采购及安装协议
- 高考考务人员培训系统考试试题答案
- 2026上海市大数据中心招聘10名笔试参考题库及答案解析
- 四川省达州市(2026年)辅警招聘公安基础知识考试题库及答案
- 马克思主义基本原理第一章案例
- 07.2五年级下册道德与法治第7课《不甘屈辱 奋勇抗争》PPT教学课件(第二课时)
- 安全生产责任保险制度解读与推行
- 变电站工程构架吊装方案
- 马克思主义基本原理概论:5.3 资本主义的历史地位和发展趋势
- 全国28个省、直辖市、自治区革命老区县市名单
- 身份证标志台帐
- 2023级四川省通用技术会考试题及答案
评论
0/150
提交评论