已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京联合大学信息学院微机原理与嵌入式系统报告姓 名: 刘仡凡 班 级 学 号: 2009080304429 专 业: 通信工程 指 导 教 师: 刘瑞祥 2011年 11月18 日实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。二、软硬件环境1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;2、软件环境:装有MASM 5.0、DEBUG、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。三、实验内容与步骤1、实验内容编写程序,在屏幕上显示“Hello World!”,该源程序取名为hello.asm。2、实验步骤汇编语言程序设计上机过程如图1.1所示。图1.1 汇编语言程序上机过程(一)用编辑程序EDIT建立汇编语言源程序文件(ASM文件)在Windows 2000或者在Windows XP环境下鼠标单击“开始”“运行”,在“运行”中输入“CMD”进入DOS模式,运行EDIT软件,例如:C EDIT hello.ASM进入EDIT的程序编辑画面时,输入汇编语言源程序如下: DATA SEGMENT MSG DB Hello World!, 0DH,0AH ,$ ;定义数据段,并初始化待显示的字符串 DATA ENDS STACK SEGMENT stack DB 100 DUP(0) ;定义堆栈段 STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE ;由ASSUM伪指令定义各段寄存器的内容 START: MOV AX,DATA MOV DS,AX LEA DX,MSG MOV AH,9 ;调用dos功能,显示字符串 INT 21H mov ah,4ch ;返回dos状态 int 21h CODE ENDS END START (二)用汇编程序MASM将ASM文件汇编成目标程序文件(OBJ文件)当源程序建立以后,仍以hello.asm程序为例,我们用汇编程序MASM对hello.asm源程序文件进行汇编,以便产生机器码的目标程序文件hello.obj,其操作步骤如下: CMASM hello.asm Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 19811985,1987. All rights reserved. Object filename ABC.OBJ: Source listing NUL.LST: Cross-reference NUL.CRF:50674 + 450574 Bytes symbol space free0 Warning Errors0 Severe Errors (三) 用连接程序LINK生成可执行程序文件(EXE文件)经汇编后产生的二进制的目标程序文件(OBJ文件)并不是可执行程序文件(EXE文件),必须经连接以后,才能成为可执行文件。连接程序并不是专为汇编语言程序设计的。如果一个程序是由若干个模块组成的,也可通过连接程序LINK把它们连接在一起。这些模块可以是汇编程序产生的目标文件,也可以是高级语言编译程序产生的目标文件。 连接过程如下:CLINK hello.objMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Run File ABC.EXE:List File NUL.MAP:Libraries .LIB: (四) 程序的执行当我们建立了可执行文件hello.EXE后,就可直接在DOS下执行该程序: Chello.exe 或者 hello从而显示Hello World! 的结果四、实验要求与提示1、实验要求(1)掌握汇编语言程序设计上机过程;汇编语言上机操作中,不同于windows操作系统,需要进入“命令提示符”界面,通过命令代码进行实际操作。(2)回答思考问题;(3)记录实验结果。练习通过“debug”调试程序,如图:六、思考与练习以及测评标准(1)汇编过程中 MASM hello和 MASM hello.ASM的结果是否一致。“masm hello”编译对象没有文件后缀,而 “masm hello.asm”意为编译“hello.asm”文件;(2)连接过程中 LINK hello和LINK hello.OBJ的结果是否一致。“link hello”编译对象没有文件后缀,而 “link hello.obj”将会把“hello.obj”打包成可执行文件,即:hello.exe;(3) 使用Word如何录入汇编语言源程序。存档时,后缀改用“.asm”;实验二 Debug的使用(基础与验证型)一、实验要求和目的熟练掌握动态调试程序DEBUG的使用;二、软硬件环境1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;2、软件环境:装有MASM 5.0、Debug、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。三、实验内容与步骤1、实验内容(1)进入和退出Debug程序(2)学会Debug中的D命令、R命令、T命令、G命令、U命、Q命令等的使用。(3)利用Debug,验证程序中指令的功能和结果。 (4)使用Debug调试程序调试汇编程序。2、实验步骤(1)在DOS提示符下,进入Debug程序。(2) 详细记录每一步所用的命令,以及查看结果的方法和具体结果。(3)求从1开始连续50个奇数之和,并将结果存放在名字为SUM的字存储单元中。已汇编、连结生成了可执行文件test1.EXE,存放在d:MASM目录下。请使用Debug对其进行调试。调试过程: DATASEGMENT ;定义数据段SUMDW 0 ;定义变量并赋初值DATAENDS STACKSEGMENT STACK ;定义堆栈段DB 200 DUP(0)STACKENDSCODESEGMENT ;定义代码段ASSUMEDS:DATA,SS:STACK,CS:CODE ;由ASSUM伪指令定义各段寄存器的内容START: MOV AX,DATA MOV DS,AX MOV CX,5 ;累加次数 MOV AX,0 ;存放累加和 MOV BX,1 NEXT: ADD AX,BX INC BX INC BX DECCX JNE NEXT MOV SUM,AX ;存放最终累加结果 MOV AH,4CH INT 21H ;返回dos状态CODEENDS END START 进入Debug并装入可执行文件test1.EXED:MASMDebug test1.EXE- 观察寄存器初始状态-R 注:(1)以上显示的寄存器值,可能和你的电脑显示的不一样。(2)Debug中默认的进制是十六进制。 观察数据段中相应位置的值-D 数据段:偏移地址 使用U命令反汇编 -U 从程序存放的位置开始使用T命令进行单步执行观察结果使用G 命令执行-G 地址(程序终止的偏移地址处)四、实验要求与提示1、实验要求(1)熟练掌握Debug的命令;(2)熟练掌握使用Debug调试汇编程序;(3)回答思考问题;(4)记录实验结果。2、实验提示一般使用Debug调试汇编程序的步筹如下:(1) 调用DEBUG,装入用户程序(2) 观察寄存器初始状态(3) 以单步工作方式开始运行程序(4) 观察用户程序数据段初始内容(5) 连续工作方式运行程序五、思考与练习以及测评标准(1) 如何启动和退出Debug程序。(2) 整理每个Debug命令使用的方法,实际示例及执行结果。(3)启动Debug后,要装入某一个.EXE文件,应通过什么方法实现?实验三 分支程序设计知识提要:本部分内容主要对分支程序加以介绍,其知识要点:1无条件转移指令JMP无条件转移指令JMP是使程序无条件转移至目标处,又分为段内转移、段间转移。2条件转移指令JXX条件转移指令可分为三大类:1)简单条件转移指令指令。根据单个标志位的状态判断转移条件。标志位指令转移条件意义CFJCCF=1有进位/借位JNCCF=0无进位/借位ZFJE/JZZF=1相等/等于0JNE/JNZZF=0不相等/不等于0SFJSSF=1是负数JNSSF=0是正数OFJOOF=1有溢出JNOOF=0无溢出PFJP/JPEPF=1有偶数个1JNP/JPOPF=0有奇数个12)无符号数条件转移指令。假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:指令转移条件意义JA/JNBECF=0 AND ZF=0ABJAE/JNBCF=0 OR ZF=1A=BJB/JNAECF=1 AND ZF=0ABJBE/JNACF=1 OR ZF=1ABJGE/JNLSF=OF OR ZF=1A=BJL/JNGESF OF AND ZF=0ABJLE/JNGSF OF OR ZF=1A=B一、实验要求和目的1熟悉汇编语言程序设计结构;2熟悉汇编语言分支程序基本指令的使用方法;3掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。二、软硬件环境1硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;2软件环境:装有MASM 5.0、DEBUG、LINK和EDIT等应用程序。三、实验内容与步骤1实验内容(1)编写计算下面函数值的程序:设输入数据为X、输出数据Y,且皆为字节变量,使用Debug查看X、Y两个变量的数据(2)以ARRAY为首地址的内存单元中,存放若干个8位的带符号数,统计数组中大于等于0的数的个数,并将结果存入RESULT字节单元中。2实验步骤(1)编写程序(2)对程序进行debug调试,观察中间结果四、实验要求1实验要求(1)画出各程序流程图;A成立否?P1P2入口出口YN(2)列出程序清单,加上适量注释;data segment xx dw 12 yy dw ?data endsstack segment stack stack db 100h dup (?)stack endscode segment assume cs:code,ds:data,ss:stackstart
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年艺人演艺合同
- 编程教育与逻辑思维培养
- 12 一幅名扬中外的画(教学设计)2023-2024学年统编版语文三年级下册
- 2025年医疗质量安全核心制度考试试题及答案
- 2024年反假货币知识线上答题考试题库含答案
- 养老院敬老院食品卫生安全应急预案
- 2025军队文职专业科目管理学真题卷模拟题及答案
- 2025年春季森林火灾应急预案演练脚本
- 全球劳动力市场的法律监管模式
- 完整版2025年监理工程师案例分析土木建筑真题及答案
- 应急救援总结报告
- 爱婴医院相关培训课件
- 2025年金融科技在普惠金融服务中的信用评分模型应用效果评估报告
- 2025年全国高校辅导员素质能力大赛模拟试题及参考答案
- AtlasCopcoROCT35T45D5D7操作维修保养手册
- 消防形势政策教育
- 中医护理银屑病查房课件
- 清大固体废物的处理与处置课件第4章 固体废物的物化处理
- 心电图质量管理制度
- 2025湖北水发集团园招聘40人笔试参考题库附带答案详解析集合
- 中级出版专业资格考试《出版专业基础知识》真题卷(2025年新版解析)
评论
0/150
提交评论