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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《汇编语言程序设计》实验指导手册.docx

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

2、错误的发生。3.完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。实验一 汇编语言上机环境(一) 实验目的熟悉汇编语言上机环境掌握汇编语言上机过程与步骤(二) 实验器材与实验准备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE 实验准备:cs1 segment assume cs : cs1 , ds : cs1start: push cs pop ds mov ah,0 int 10h lea dx

3、 , 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. 执行可执行文件(五) 实验结果分析 在生成可执行文件过程中,一共生成了多少个相关的文件,它们的作用分别是什么?实验二 DEBUG 的使用(一)实验目的1、熟悉 DEBUG 程序中

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

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

6、“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 03060402 ADD AX,0204186E:010B 131E0602 ADC BX,0206186E:01

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

8、,用“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)= 00ab,h(BX)= 00abh DS:0208H 四字节单元的内容: 0

9、0ab00abh实验三 分支程序设计(一)实验目的1、掌握多路分支 IFElse IFElse 程序结构和设计方法。2、学会使用地址表和转移表法写多路分支程序。(二)实验设备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有20 个学生的成绩数据,为无符号字节数。假 设学生成绩在90,100区间为优秀,在80,90)区间为良好,在70,80)区间为一 般,在60,70)区间为及格,在0,60)区间为不及格,要求统计出不及格,及格, 一般,良好和优秀的人数,分别送入 No

10、tpassed,Passed,Good,Better 和 Best 字节单元。用普通的跳转语句实现上述功能。(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;(五)实验步骤1.编写源程序data segmentScore db 56,23,94,64,85,61,94,81,76,61,34,94,68,95,84,34,16,49,79,84len equ $-ScoreNotpassed db 0Passed db 0Good db 0Better db 0 B

11、est db 0data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov cx,len mov si,0re: mov al,scoresi cmp al,60 jae f1 inc notpassed jmp nextf1: cmp al,70 jae f2 inc passed jmp nextf2: cmp al,80 jae f3 inc good jmp nextf3: cmp al,90 jae f4 inc better jmp nextf4: inc besten: inc si l

12、oop re mov ah,4ch int 21hcode ends end start2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、确认不及格,及格,一般,良好和优秀的人数总和是否为 20。(七)编程提示a) 用普通的跳转语句实现上述功能时,区分不及格,及格,一般,良好和 优秀 5 个区间,是一个 5 分支的结构,至少需要 4 条跳转指令。b) 注意无符号数和有符号数使用跳转指令的区别。c) 用地址表和转移表法实现时,必须找出分数与地址表和转移表的偏移的 对应关系。实验四 循环程序设计(一)实验目的1、掌握多重循环程序的结构和设计方法。2、弄清直接

13、排序的算法。3、弄清冒泡排序方法。(二)实验设备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有 20 个学生的成绩数据,为无符号字节数。 设计程序完成如下功能:将最高和最低的分数分别存放在 MIN 和 MAX 单元中。(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;(五)实验步骤1.编写源程序Data segmentDa dw 4546

14、h,9414h,6445h,8745h,6136h,1264h,5555hNum dw ($-da)/2 ;填空 (当前地址-da)/2Max dw ?Min dw ?Data endsCode segment Assume cs:code ,ds:dataStart:mov ax,data mov ds,ax mov cx,num mov ax,da mov dx,da mov si,0re: cmp dasi,ax jle skip1 ;如果小于等于就跳过 mov ax,dasiskip1: cmp dasi,dx jge skip2 ;=跳过 mov dx,dasiskip2: add

15、si,2 loop re mov max,ax MOV MIN,DX MOV AH,4CH INT 21HCODE ENDS END START2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、循环次数NUM的定义有何特点以符号定义,不占用内存空间 2、DEBUG调试分析是否得到正确结果(七)编程提示(a) 无符号数的比较是用ja,jc,je实验五 子程序设计(一)实验目的1、掌握子程序的设计方法和调用方式2、深刻认识堆栈在子程序设计中所起的作用3、掌握子程序调试的技巧。(二)实验设备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP

16、MASM . EXE和LINK . EXE(三)实验内容和要求实验内容:将数值1234和56H,用十进制将它们显示,要求用子程序的方式来实现显示功能.(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;(五)实验步骤1.编写源程序;要求编写一个子程序,这个子程序能自动将 AX的数值以十进制的形式输出CODE SEGMENT ASSUME CS:CODESTART: MOV AX,1234 CALL PRI mov dl,10;换行 mov ah,2 int 21h m

17、ov dl,13;回车 mov ah,2 int 21h MOV AX,56H CALL PRI mov ah,4ch int 21hpri proc near push bx push cx push dx mov bx,10;十进制 mov dx,0;被除数的高16位 mov cx,0;位数rediv: div bx ;dxax / bx push dx;余数 mov dx,0 inc cx cmp ax,0 jnz rediv mov ah,2reout: pop dx add dl,30h;将数值位-字符 1-1 int 21h loop reout pop dx pop cx pop

18、 bx retpri endpcode ends end start2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、理解 寄存器参数传递方式各有什么特点使用简单方便数量少,难以传递多个数据(七)编程提示(a) 二进制显示也可采用移位并判断该位的方式进行。(b) 十进制数采用除以 10 取商的方式。(d) 注意去掉最高位的“0”。实验六 中断程序设计(一)实验目的1、中断服务子程序的编写。2、BIOS 和 DOS 中断调用。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 以上编辑程序 EDIT 或其它编辑程序 汇编程序

19、 MASM.EXE 6.1X 连接程序 LINK.EXE调试程序 DEBUG.COM(三)实验内容和要求实验内容:1.编写一个完成的程序,用于输入一个小写字母,输出大写字母。要求:分别用BIOS 和 DOS 中断调用来实现(四) 实验准备1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;3、分析BIOS 和 DOS 中断调用的功能和区别(五)实验步骤 1.编写源程序;DOS功能调用输入字符,如果是小写,就改成大写code segment assume cs:codestart:

20、MOV si,5re: mov ah,1 int 21h push ax mov dl,13;回车 mov ah,2 int 21h mov dl,10; mov ah,2 int 21h pop ax cmp al,a jb skip cmp al,z JA SKIP SUB AL,32SKIP: MOV AH,2 MOV DL,AL INT 21H mov dl,13;回车 mov ah,2 int 21hmov dl,10;回车 mov ah,2 int 21h sub si,1 jnz re MOV AH,4CH INT 21HCODE ENDS END START;BIOS功能调用输

21、入字符,如果是小写,就改成大写code segment assume cs:codestart: MOV si,5re: mov ah,0 int 16H push ax mov Al,13;回车 mov ah,E int 10h mov Al,10; int 10h pop ax cmp al,a jb skip cmp al,z JA SKIP SUB AL,32SKIP: MOV AH,0 INT 10H mov Al,13;回车 mov ah,E int 10h mov Al,10; int 10h sub si,1 jnz re MOV AH,4CH INT 21HCODE ENDS END START 2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析利用实验中源程序中的输出方法,分析BIOS 和 DOS 中断调用的功能和区别。BIOS功能调用功能更为强大,但参数设置复杂DOS功能调用实现相对简单,但功能不如BIOS强DOS功能调用格式相对固定,根据AH值不同,使得在执行INT 21H指令时有不同功能BIOS调用对不同的设备,int后所接参数都不一样,而且AH的值也决定其操作

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

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