ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:100.87KB ,
资源ID:7750398      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7750398.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言程序设计实验手册专科范文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序设计实验手册专科范文.docx

1、汇编语言程序设计实验手册专科范文汇编语言程序设计 实验指导手册编写:熊书兴 陶 国 武南昌理工学院计算机系 2007-4 汇编语言程序设计实验指导手册汇编语言程序设计实验是学习本课程的每个考生必须要通过的一个重要的实践环节。本指导手册依照我系各类计算机专科专业教学大纲,根据人民邮电出版社的汇编语言程序设计(梁发寅著)教材编写而成。本指导手册共计有编有10个实验,在实际实验过程中可以按照实际教学进度情况加以增删。每个实验都应做到:1.做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。2.编写源程序:按照实

2、验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。3.完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。实验一 汇编语言上机环境(一) 实验目的熟悉汇编语言上机环境掌握汇编语言上机过程与步骤(二) 实验器材与实验准备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE 实验准备:cs1 segment assume cs : cs1 , ds : c

3、s1start: push cs pop ds mov ah,0 int 10h lea dx , str0 mov ah,9 int 21h mov ah,4ch int 21hstr0 db hello , $cs1 ends end start(三) 实验内容和要求1. 建立汇编源程序文件2. 逐步汇编,连接生成可执行文件3. 运行生成的可执行文件(四) 实验步骤:1. 在记事本中编辑原文件2. 将MASM . EXE和LINK . EXE以及原文件拷贝在同一目录下3. 汇编原文件4. 连接目标文件5. 执行可执行文件(五) 实验结果分析 在生成可执行文件过程中,一共生成了多少个相关的文

4、件,它们的作用分别是什么?实验二 DEBUG 的使用(一)实验目的1、熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。2、掌握 8086/8088 的寻址方式及多字节数据的处理方法。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 版本以上调试程序 DEBUG.COM(三)实验内容和要求实验内容:1、利用 DEBUG 程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为 DS:0200H 和 DS:0204H 两个单元中。2 、分 别用 直接寻址方 式和寄存器 间接寻址方 式编写程序

5、段,实现将 DS:0200H 单元和 DS:0204H 单元中的数据相加,并将运算结果存放在 DS:0208H 单元中。实验要求:本次实验的内容均在 DEBUG 下完成,实现数据的装入、修改、显示;汇 编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;3、复习寻址方式和相关的数据传送指令及算术运算指令。(五)实验步骤1、启动 DOS 操作系统2、运行 DEBUG.COM 程序(若当前盘为 C)CDEBUG ;“

6、( ”为 DEBUG 提示符,仅当屏幕出现该提示符后,才可输入 DEBUG命令)3、用“A”命令编辑和汇编源程序A 186E:0100 MOV AX,0200186E:0103 MOV BX,0202186E:0107 ADD AX,0204186E:010B ADC BX,0206186E:010F MOV 0208,AX186E:0112 MOV 020A,BX186E:01164、用“U”命令反汇编验证源程序U CS:0100186E:0100 A10002 MOV AX,0200186E:0103 8B1E0202 MOV BX,0202186E:0107 ADD AX,0204186

7、E:010B 131E0602 ADC BX,0206186E:010F A30802 MOV 0208,AX186E:0112 891E0A02 MOV 020A,BX186E:0116注意:检查源程序是否有错误,若有则返回到第 3 步用“A 地址”命令进 行修改,直到程序无错误。DEBUG 约定在其命令或源程序中所涉及到的数据均被看作十六进 制数,其后不用“H”说明。在 DEBUG 下,源程序中不能使用“标号”、“变量”和一些伪指令。在 DEBUG 下,大小写不敏感。5、程序未执行前,用“R”命令观察,相关寄存器的内容。R如:(AX)= ,(BX)= ,(SI)= ,(DI)= ,(CS)

8、= ,(IP)= 。6、在程序未执行前,用“D”命令观察 DS:0200H,DS:0204H、DS:0208H单元的内容D 200 20B 7、用“G”命令运行源程序G =110 0116 8、再用“D”命令观察 DS:0200HDS:020BH 字节单元中的内容D 200 20B9、用“T”单步操作命令对源程序单步执行,观察 AX、BX、CS、IP 寄存 器内容的变化,并与预计的结果相比较。注意: D 命令显示内存数据,注意观察多字节数据在内存中的存放方式。 指令执行的时候,IP 寄存器随着变化,注意观察。(六)实验结果分析1、程序运行结果:(AX)= ,(BX)= DS:0208H 四字节

9、单元的内容: 2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。(参考下列程序流程图)开始SI200HDI204HBX208HAX (SI)DX(SI)+2AX(AX)+(DI)DX(DX)+( (DI)+2 )(BX)(AX)( (BX)+2 )(DX)结束3、附加题目:1. 从 DS:0000H 开始的 5 个 16 位带符号数分别记为 x,y,z,v,w,用 E 命令初 始化为:540,1,-1,1080,0, 试求 w=(v-(x*y+z-540)/x2. 完成 BX 中 1 的个数的统计。3. 用串操作指令将 DS:0000 开始 20 个字节初始化为:0CCH。并将这 2

10、0个字节的内容复制到其后的 20 个字节里。实验三 顺序程序设计(一)实验目的1、学习算术运算(加、减、乘、除)和扩展指令的用法;2、掌握顺序程序结构和设计方法;3、熟悉在 PC 机上建立、汇编、连接、调试和运行 8086/8088 汇编语言程 序的过程。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 以上编辑程序 EDIT 或其它编辑程序 汇编程序 MASM.EXE 6.1X 连接程序 LINK.EXE调试程序 DEBUG.COM(三)实验内容和要求实验内容:X、Y、Z、V 均为字变量,在 X、Y、Z、V 字单元中存放是 16 位带符号 数。试编写汇编语言

11、程序完成以下功能:计算表达式值(V(X*Y+Z-720)/X;将上述表达式运算结果整数放在 SUM1 单元,余数放在 SUM2 单元。 要求:编写出完整的汇编语言源程序,根据题目的需要建立相应的逻辑段(如 程序段、数据段)。可选用任何一种编辑程序在磁盘上建立一个源文件(扩展名为.ASM)。用宏汇编 程序 MASM 对源文件 进行汇编, 生成目标文 件(扩展 名 为.OBJ)。用连接程序 LINK 对目标文件进行连接,生成可执行程序.EXE 文件。用 DEBUG 调试程序对源程序进行动态调试。(四)预习要求1、复习掌握 8086 指令系统相关指令,按实验内容和要求预先编写好源程序;2、熟悉在宏汇

12、编程序 MASM 环境下,对源程序进行编辑、汇编、连接、 运行。3、进一步熟练用 DEBUG 对源程序进行动态调试,掌握一些常用的调试命 令和方法。(五)实验步骤1、启动 DOS 操作系统;2、调用某种编辑程序,在磁盘上建立扩展名为 ASM 的源程序;3、在 DOS 提示下,打入 MASM 调入宏汇编程序,用以对源程序进行汇编。设在磁盘上已建立了一个 EXAMPLE.ASM 源程序,操作如下所示:C:MASMMicrosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All ri

13、ghts reserved. Source filename .ASM:EXAMPLEObject filename EXAMPLE.OBJ: Source listing NUL.LST:EXAMPLE Cross reference NUL.CRF:EXAMPLE Warning SevereErrors Errors0 0 C:汇编程序 MASM 需要和用户进行上述相关信息交互,以便进行汇编、生成 相应的文件。(a)提示用户输入需要汇编的源程序名;(b)提示用户输入要建立的目标文件名,若默认括弧内的目标文件名,则可 直接按回车;(c)询问用户是否要建立汇编列表文件,若要,则打入文件名,否

14、则按回车;(d)询问用户是否要建立交叉索引文件,若要,则打入文件名,否则按回车。 注意: 仅当屏幕上显示无错误时(警告错误为“0”,严重错误为“0”),才可进行下一步骤连接,否则要根据提供源程序的错误行号和错误性质,重新对源 程序进行修改、编辑和汇编。4、在 DOS 提示符下,打入 LINK 调用连接程序,以便对目标文件进行连接。产生可执行 EXE 文件。操作如下所示:C: LINKMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved. Objec

15、t Modules .OBJ: EXAMPLERun File EXAMPLE.EXE: List File NUL.MAP: Libraries .LIB: Warning: No STACK segment There was 1 error detected. C:连接程序 Link 需要和用户进行上述相关信息交互,以便连接和生成相应的 文件。(a)提示用户输入需要连接的目标模块名;(b)提示用户输入要建立的可执行文件名,若默认括弧内的可执行文件名,则直接按回车;(c)询问用户是否要建立地址分配文件,若要,则打入文件名,否则按回车;(d)询问用户是否用到库文件,如果用户自己建立了库文件,

16、则键入库文件 名,否则按回车。连接程序在连接过程发现有错,则会显示出错信息,用户应重新调用编辑 程序对源程序进行修改,然后重新汇编、连接、直至无错。但连接程序给出的无 堆栈段的警告性错误并不影响程序的执行,所以,到此为止,连接过程已经结束, 生成了有效的可执行程序。5、在 DOS 提示符下,直接输入 EXE 文件名,运行程序。C:EXAMPLE 注意:此时可能屏幕上没有任何显示,因为你没有让结果显示在屏幕上,但是你 的计算结果必然在内存中。所以应该采用 DEBUG 进行动态调试。6、调用 DEBUG 程序对 EXE 文件进行动态调整,其方法和步骤与实验一 相同。C:DEBUG EXAMPLE.

17、EXE再可以用 U,D,T,G 等命令进行调试,其方法和步骤与实验一相同。(六)实验结果分析1、程序运行结果:SUM1 单元: ;SUM2 单元: 。2、若在 X、Y、Z、V 字单元中存放的均为无符号数,对相关十六位二进 制数进行扩展,采用什么方法可以实现?(七)编程提示(a)执行 16 位 IMUL 指令运算结果乘积在 DX、AX 中。(b)相加或相减的二个数长度一定要相同,注意使用 CWD 扩展指令将(AX)DX、AX。(c)使用 16 位 IDIV 指令一定要将被除数放在 DX、AX 中。实验四 分支程序设计(1)(一)实验目的1、掌握多路分支 IFElse IFElse 程序结构和设计

18、方法。2、学会使用地址表和转移表法写多路分支程序。(二)实验设备同实验二(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有 100 个学生的成绩数据,为无符号字节数。假 设学生成绩在90,100区间为优秀,在80,90)区间为良好,在70,80)区间为一 般,在60,70)区间为及格,在0,60)区间为不及格,要求统计出不及格,及格, 一般,良好和优秀的人数,分别送入 Notpassed,Passed,Good,Better 和 Best 字节单元。1. 用普通的跳转语句实现上述功能。2. 用地址表法和转移表实现。(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、

19、确认不及格,及格,一般,良好和优秀的人数总和是否为 100。(七)编程提示a) 用普通的跳转语句实现上述功能时,区分不及格,及格,一般,良好和 优秀 5 个区间,是一个 5 分支的结构,至少需要 4 条跳转指令。b) 注意无符号数和有符号数使用跳转指令的区别。c) 用地址表和转移表法实现时,必须找出分数与地址表和转移表的偏移的 对应关系。实验五 分支程序设计(2)(一)实验目的1、熟悉与转移地址有关寻址方式的使用。2、掌握多路分支程序的结构和设计方法。(二)实验设备同实验二(三)实验内容和要求实验内容有一个管理软件可接受 7 个键盘命(分别为 1、2、3、7),根据键 入的命令分别转向 PRO

20、CA、PROCB、PROCG 标号处执行,分别显示星期 一星期天的英文字符串。(要求用地址表法完成具有上述功能的多路分支程 序的设计。)其它要求同实验二(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、若改用转移表法来实现多路分支,程序如何修改?2、若采用二路分支判别条件的方法来实现多路分支,程序的缺点是什么?(七)编程提示(a)在数据段建立地址表Data segment TAB DW PROCA DW PROCB DW PROCC DW PROCG Data End (b)程序流程图开始输入键盘符ALN 1(AL)7Y (AL)-30H AL(AL)*2AX地址表的首地址BX

21、(BX)+(AX)BX转入对应程序段显示星期英文名结束实验六 循环程序设计(1)(一)实验目的1、掌握多重循环程序的结构和设计方法。2、弄清直接排序的算法。3、弄清冒泡排序方法。(二)实验设备同实验二(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有 100 个学生的成绩数据,为无符号字节数。 设计程序完成如下功能:采用直接排序法对数组进行由小到大排序;采用冒泡排序方式对数组进行由大到小排序;将最高和最低的分数分别存放在 MIN 和 MAX 单元中。(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、对数据进行排序对查找有什么意义?(七)编程提示(a) 采用冒泡排序

22、算法进行排序程序流程图开始数组首地址BX数组长度 100-1CH(BX)SI,(CH)CL,((SI))AL(AL)((SI)+1) Y N(AL) ((SI)+1)(SI)+1SI,(CL)-1CLN (CL)=0Y(AL)(BX)(BX)+1BX,(CH)-1CHN (CH)=0Y结束实验七 循环程序设计(2)(一)实验目的1、学习循环控制指令的用法。2、弄清简单查找和复杂查找如折半查找等的编程方法。3、掌握循环程序的结构和设计方法。(二)实验设备同实验二(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有 100 个学生的成绩数据,为无符号字节数。 设计程序完成如下功能:根据

23、用户输入的一个 2 位十进制数,作为查找对象,在该数组中查找, 若找到则显示“Y”,若没找到则显示“N”。根据用户输入的一个 2 位十六进制数,作为查找对象,在该数组中查找, 若找到则显示“Y”,若没找到则显示“N”。(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、若在数据区 Score 内能够找到输入的数据,则在屏幕上显示“Found,” 否则显示“Not found”,程序如何修改?2、如果分数已经从小到大进行了排序,采用折半查找应如何进行? (七)编程提示(a)在数据段定义 100 个无符号字节数。(b)程序流程图开始调用 DOS1 号功能将数的十位字符ALN 0(AL

24、)9(AL)AH调用 DOS 21 号功能将数的个位字符ALN 0(AL)9Y (AH)0FHAH(AL)0FHAL(AH)*10+(AL)AL数组的首地址BX数组的长度 100CX(AL) =?((BX)) YN(BX)+1BX(CX)-1CXN (CX)?= 0Y NDLYDL调用 DOS2 号功能输出显示字符结束实验八 子程序设计(1)(一)实验目的1、掌握子程序的设计方法和调用方式2、深刻认识堆栈在子程序设计中所起的作用3、掌握子程序调试的技巧。(二)实验设备同实验二(三)实验内容和要求实验内容:内存中有一字节型无符号数缓冲区 Data,长度为 100。将 Data 缓冲区显示 到屏幕

25、上,分别用二进制,十进制和十六进制。要求:1编写子程序将一个字节数用二进制进行显示,参数用内存数传递;2编写子程序将一个字节数用十进制进行显示,参数用寄存器数传递;3编写子程序将一个字节数用十六进制进行显示,参数用堆栈传递;(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、理解 3 种参数传递方式各有什么特点2、绘制一般子程序的结构。(七)编程提示(a) 二进制显示可采用移位并判断该位的方式进行。(b) 十进制数采用除以 10 取商的方式。(c) 十六进制数可利用二进制转换位十六进制的方法进行。(d) 注意去掉最高位的“0”。实验九 子程序设计(2)(一)实验目的1、掌握子程序

26、的设计方法和调用方式2、深刻认识堆栈在子程序设计中所起的作用3、掌握子程序调试的技巧。(二)实验设备同实验二(三)实验内容和要求实验内容:已知某密码由英文字母A、B、CZ组成且以ASCII码形式存放在以CIPHER 为首地址的存储区中,试统计各字母在此密码中出现的次数并依次存入以 CHAR 为首地址的26个字节中,最后将字母出现的次数以十六进制形式显示 出来(设出现的次数255),显示格式为:A XXH B XXH Z XXH要求:将“8 位二进制数转换成十六进制数并显示出来”的功能用子程序完成。(四)预习要求同实验二(五)实验步骤同实验二(六)实验结果分析1、叙述调用子程序和子程序返回对堆栈

27、的操作过程。2、绘制一般子程序的结构。(七)编程提示(e)主程序流程图开始26CX,ADL,0SI0AL,0BX(CIPHERBX)=(DL) N Y(AL)+1AL(BX)+1BXN 字符串结尾吗?Y(AL)CHARSI,(SI)+1SI调用 DISP 子程序显示一行信息(DL)+1DL(CX)-1CXN (CX)=0Y 结束(b)子程序 DISP 流程图开始调用 DOS2 号功能显示 DL 的内容调用 DOS9 功能显示字符串“”(AL)DLDL 的内容逻辑右移 4 位(DL)+30HDL(DL)39H Y N(DL)+7DL调用 DOS2 号功能显示 DL 的内容(AL)DL(DL)0F

28、HDL(DL)+30HDL(DL)39H Y N(DL)+7DL调用 DOS2 号功能显示 DL 的内容调用 DOS2 号功能回车、换行结束实验十 中断程序设计(一)实验目的1、中断服务子程序的编写。2、BIOS 和 DOS 中断调用。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 以上编辑程序 EDIT 或其它编辑程序 汇编程序 MASM.EXE 6.1X 连接程序 LINK.EXE调试程序 DEBUG.COM(三)实验内容和要求实验内容:1.编写一个完成的程序,用于输入一个小写字母,输出大写字母。2.编写一个完成的程序,接收一个字符串,将它输出时全部以大写的方式输出。要求:分别用BIOS 和 DOS 中断调用来实现(四) 实验准备同实验二,并且分析BIOS 和 DOS 中断调用的功能和区别(五)实验步骤 (略)(六)实验结果分析 利用实验中源程序中的输出方法,分析BIOS 和 DOS 中断调用的功能和区别

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1