




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理实验报告 实验二 熟悉汇编程序建立及其调试方法姓名: 刘莹莹 学号:130241041、 实验目的 1、熟悉汇编语言源程序的框架结构,学会编制汇程序。2、熟悉汇编语言上机操作的过程,学会汇编程序调试方法。 2、 实验内容 1、 学习编写汇编语言源程序的方法,了解数据存放格式。 2、 阅读给出的程序,找出程序中的错误。 3、 通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。 3、 实验预习 1、 阅读实验指导第一章的内容,了解汇编语言程序建立、汇编、链接、调试的全过程。 2、 下面的汇编语言源程序有错误的,试给程序加注释。通过调试手段找出
2、程序中的错误并修改之。写出程序的功能,画出程序流程图。(1)程序修改前:STACKSG: SEGMENT PARA STACK STACK ;不能有冒号 DB 256 DUP(?) STACKSG ENDSDATASG: SEGMENT PARA DATA ;不能有冒号BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20MAX DW ?DATASG ENDSCODESG: SEGMENT ;不能有冒号 ASSUME SS:STACKSG , CS:CODESG AS
3、SUME DS:DATASG ORG 100HBEGIN MOV DS, DATASG ;BEGIN: 应改为 MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK MOV CX, COUNT DEC CX MOV AX , SICHKMAX ADD SI,2 ;应加冒号CHKMAX: CMP SI , AX JLE NEXT MOV AX , SI DEC CX ;删除 NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH INT 21HCODESG ENDS END BEGIN(2)程序修改后:STACKSG SEGMENT PAR
4、A STACK STACK DB 256 DUP(?) STACKSG ENDSDATASG SEGMENT PARA DATABLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20MAX DW ?DATASG ENDSCODESG SEGMENT ASSUME SS:STACKSG , CS:CODESG ASSUME DS:DATASG ORG 100HBEGIN MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK MOV CX, C
5、OUNT DEC CX MOV AX , SICHKMAX: ADD SI,2 CMP SI , AX JLE NEXT MOV AX , SI NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH INT 21HCODESG ENDS END BEGIN(3)程序注释:STACKSG SEGMENT PARA STACK 'STACK' DB 256 DUP(?)STACKSG ENDS ;定义堆栈段DATASG SEGMENT PARA 'DATA' ;数据段定义BLOCK DW 0,-5,8,256,-128,96,100,3
6、,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 ;定义变量BLOCK包含20个字COUNT EQU 20 ;COUNT=20MAX DW ? ;定义字变量MAX并不赋值DATASG ENDSCODESG SEGMENT ;代码段定义 ASSUME SS:STACKSG , CS:CODESG ;说明STACKSG是堆栈段 ASSUME DS:DATASG ;CODESG是代码段, DATASG是数据段 ORG 100HBEGIN: MOV AX, DATASG MOV DS, AX ;DS指向DATASG LEA SI ,BLOCK ;取BLOCK
7、的有效地址给SI MOV CX, COUNT ;CX=20 DEC CX ;CX=CX-1 MOV AX , SI ;将DS:SI里的值送到AXCHKMAX : ADD SI, 2 ;SI=SI+2 CMP SI , AX ;比较DS:SI与AX值的大小 JLE NEXT ;如果DS:SI的值小于AX里的值,则跳转到NEXT MOV AX , SI ;将DS:SI的值送到AXNEXT: LOOP CHKMAX ;循环CHKMAX MOV MAX ,AX ;将AX的值送到变量MAX MOV AH, 4CH ;结束 INT 21HCODESG ENDS END BEGIN(4)程序的流程图:开始从
8、内存取数SI=SI+2SI>AX ? YAX=SI NCX1CX=0? N Y保存最大值结束(5)程序的功能:找出20个数中的最大值并保存。4、 实验步骤 1、建立汇编语言源程序,对建立的汇编语言源程序进行编译、链接。 2、运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容。代码段段基值:164F 数据段段基值:162CAX=0000 BX=0000 CX=0536 DX=0000 SP=0100 BP=0000SI=0000 DI=0000 DS=162C ES=162C SS=163C CS=164F IP=
9、0100 3、用D命令查看并记录下内存中数据存放格式。 (注:在教室没有做完,回来用自己电脑做的,所以段基值不一样) 4、用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响,若找出程序中的错误,用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。 5、若将LEA SI,BLOCK语句改为LEA SI,BLOCK+2*COUNT-2,并将ADD SI,2改为SUB SI,2,重新运行程序,观察运行结果: 1)建立汇编语言源程序,对建立的汇编语言源程序进行编译、链接。 2)运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录
10、代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容。代码段段基值:164F 数据段段基值:162CAX=0000 BX=0000 CX=0536 DX=0000 SP=0100 BP=0000SI=0000 DI=0000 DS=162C ES=162C SS=163C CS=164F IP=0100 3)用D命令查看并记录下内存中数据存放格式 4)用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响。 和之前的结果一样。 6、若重新给出一组数据,可用E命令输入新数据后运行程序,观察并记录运行结果。(注:在教室没有做完,回来用自己电脑做的,所以段基值不一样)
11、 7、若要求找出数据区中最小数,程序将如何修改,试上机调试。 (将JLE NEXT改为JGE NEXT)DATA SEGMENT PARA 'DATA' BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ?DATA ENDSSTACK SEGMENT PARA STACK 'STACK' DB 256 DUP(?) STACK ENDSCODE SEGMENT ASSUME SS:STACK,CS:CODE ASS
12、UME DS:DATA ORG 100HBEGIN: MOV BX,DATA MOV DS,BX LEA SI,BLOCK MOV CX,COUNT DEC CX MOV AX,SICHKMAX: ADD SI,2 CMP SI,AX JGE NEXT MOV AX,SI DEC CXNEXT: LOOP CHKMAX MOV MAX,AX MOV AH,4CH INT 21HCODE ENDS END BEGIN 实验结果如下:(注:在教室没有做完,回来用自己电脑做的,所以段基值不一样)五、实验习题与思考1.在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?答:在DEBUG环境中用R命令进行检验。2.数据区以什么形式存放用符号数的?答:以补码形式存放有符号数。3.修改前、后程序在执行时有何区别(提示:观察数据指针的变化)答:修改前SI递增(顺序比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省信阳市潢川县2024-2025学年五年级下学期期末学业质量测试数学试卷(含答案)
- 甘肃省兰州市第三十五中学2024-2025学年九年级上学期期中道德与法治试卷(含答案)
- 快船新球馆施工方案
- 在线广告市场的变化与动向分析
- 远程医疗行业技术标准与规范
- 集中供水的施工方案
- 江西防水保温施工方案
- 环保沥青施工方案
- 红河食品净化室施工方案
- 关于网络直播营销对大学生网络购物的影响的调查
- 冯友兰-人生的境界课件
- 传热学全套PPT完整教学课件
- 部编版六年级道德与法治上册第5课《国家机构有哪些》优秀课件
- 高中心理健康教育北师大版高二全册第6课《温故知新》省级名师优质课教案比赛获奖教案示范课教案公开课教案
- 瑞美检验医生工作站操作手册
- 欧美电影文化(上海工程技术大学)【智慧树知到】网课章节答案
- 双人心肺复苏
- 全过程工程咨询服务大纲
- T-GDPA 3-2021 奥利司他胶囊质量标准
- GB/T 42061-2022医疗器械质量管理体系用于法规的要求
- 枸橼酸血液透析
评论
0/150
提交评论