汇编语言程序设计实验指导手册.doc_第1页
汇编语言程序设计实验指导手册.doc_第2页
汇编语言程序设计实验指导手册.doc_第3页
汇编语言程序设计实验指导手册.doc_第4页
汇编语言程序设计实验指导手册.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言程序设计实验指导手册汇编语言程序设计实验是学习本课程的每个考生必须要通过的一个重要的实践环节。本指导手册依照我系各类计算机专科专业教学大纲,根据人民邮电出版社的汇编语言程序设计(梁发寅著)教材编写而成。本指导手册共计有编有10个实验,在实际实验过程中可以按照实际教学进度情况加以增删。每个实验都应做到:1.做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。2.编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。3.完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。实验一 汇编语言上机环境(一) 实验目的1熟悉汇编语言上机环境;2掌握汇编语言上机过程与步骤。(二) 实验器材与实验准备实验器材: 硬件:微机一台 软件: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 , 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 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。2、掌握 8086/8088 的寻址方式及多字节数据的处理方法。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 版本以上 调试程序 DEBUG .COM(三)实验内容和要求 实验内容: 1、利用 DEBUG 程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为 DS:0200H 和 DS:0204H 两个单元中。2 、分 别用 直接寻址方 式和寄存器 间接寻址方 式编写程序 段,实现将 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 ;“( ”为 DEBUG 提示符,仅当屏幕出现该提示符后,才可输入 DEBUG13命令)3、用“A”命令编辑和汇编源程序A 186E:0100MOVAX,0200186E:0103MOVBX,0202186E:0107ADDAX,0204186E:010BADCBX,0206186E:010FMOV0208,AX186E:0112MOV020A,BX186E:01164、用“U”命令反汇编验证源程序U CS:0100186E:0100A10002 MOV AX,0200186E:01038B1E0202 MOV BX,0202186E:0107 03060402 ADD AX,0204186E:010B 131E0602ADCBX,0206186E:010FA30802MOV0208,AX186E:0112891E0A02MOV020A,BX186E:0116注意:检查源程序是否有错误,若有则返回到第 3 步用“A 地址”命令进 行修改,直到程序无错误。DEBUG 约定在其命令或源程序中所涉及到的数据均被看作十六进 制数,其后不用“H”说明。在 DEBUG 下,源程序中不能使用“标号”、“变量”和一些伪指令。在 DEBUG 下,大小写不敏感。5、程序未执行前,用“R”命令观察,相关寄存器的内容。R如:(AX)= 0,(BX)= 0,(SI)= 0,(DI)= 0,(CS)= 1680,(IP)= 0。6、在程序未执行前,用“D”命令观察 DS:0200H,DS:0204H、DS:0208H单元的内容D200 20B 7、用“G”命令运行源程序G=1100116 8、再用“D”命令观察 DS:0200HDS:020BH 字节单元中的内容D20020B9、用“T”单步操作命令对源程序单步执行,观察 AX、BX、CS、IP 寄存 器内容的变化,并与预计的结果相比较。注意:zD 命令显示内存数据,注意观察多字节数据在内存中的存放方式。z指令执行的时候,IP 寄存器随着变化,注意观察。(六)实验结果分析1、程序运行结果:(AX)= 00ab,h(BX)= 00abhDS:0208H 四字节单元的内容: 00ab00abh实验三 分支程序设计(一)实验目的1、掌握多路分支 IFElse IFElse 程序结构和设计方法。2、学会使用地址表和转移表法写多路分支程序。(二)实验设备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE(三)实验内容和要求实验内容:在内存 Score 缓冲区中存放有20 个学生的成绩数据,为无符号字节数。假 设学生成绩在90,100区间为优秀,在80,90)区间为良好,在70,80)区间为一 般,在60,70)区间为及格,在0,60)区间为不及格,要求统计出不及格,及格, 一般,良好和优秀的人数,分别送入 Notpassed,Passed,Good,Better 和 Best 字节单元。用普通的跳转语句实现上述功能。(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;(五)实验步骤1.编写源程序data segmentScoredb 56,23,94,64,85,61,94,81,76,61,34,94,68,95,84,34,16,49,79,84lenequ $-ScoreNotpasseddb 0Passed db 0Gooddb 0Better db 0 Bestdb 0data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov cx,lenmov si,0re:mov al,scoresicmp al,60jae f1inc notpassedjmp nextf1:cmp al,70jae f2inc passedjmp nextf2:cmp al,80jae f3inc goodjmp nextf3:cmp al,90jae f4inc betterjmp nextf4:inc besten:inc siloop remov ah,4chint 21hcodeendsend start2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、确认不及格,及格,一般,良好和优秀的人数总和是否为 20。(七)编程提示a)用普通的跳转语句实现上述功能时,区分不及格,及格,一般,良好和 优秀 5 个区间,是一个 5 分支的结构,至少需要 4 条跳转指令。b)注意无符号数和有符号数使用跳转指令的区别。c)用地址表和转移表法实现时,必须找出分数与地址表和转移表的偏移的 对应关系。实验四循环程序设计(一)实验目的1、掌握多重循环程序的结构和设计方法。2、弄清直接排序的算法。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 4546h,9414h,6445h,8745h,6136h,1264h,5555hNum dw ($-da)/2 ;填空 (当前地址-da)/2Max dw ?Min dw ?Data endsCode segment Assume cs:code ,ds:dataStart:mov ax,datamov ds,axmov cx,num mov ax,damov dx,damov si,0re:cmp dasi,axjle skip1 ;如果小于等于就跳过mov ax,dasiskip1:cmp dasi,dxjge skip2 ;=跳过mov dx,dasiskip2:add si,2 loop re mov max,axMOV MIN,DXMOV AH,4CHINT 21HCODE ENDSEND START2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、循环次数NUM的定义有何特点以符号定义,不占用内存空间2、DEBUG调试分析是否得到正确结果(七)编程提示(a) 无符号数的比较是用ja,jc,je实验五子程序设计(一)实验目的1、掌握子程序的设计方法和调用方式2、深刻认识堆栈在子程序设计中所起的作用3、掌握子程序调试的技巧。(二)实验设备实验器材: 硬件:微机一台 软件:DOS或WIN98/2000/XP MASM . EXE和LINK . EXE(三)实验内容和要求实验内容:将数值1234和56H,用十进制将它们显示,要求用子程序的方式来实现显示功能.(四)预习要求1、复习 DOS 启动方式和 DOS 有关命令的使用;2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、R、T、U 命令的书写格式及功能;(五)实验步骤1.编写源程序;要求编写一个子程序,这个子程序能自动将AX的数值以十进制的形式输出CODE SEGMENTASSUME CS:CODESTART:MOV AX,1234CALL PRImov dl,10;换行mov ah,2int 21hmov dl,13;回车mov ah,2int 21hMOV AX,56HCALL PRImov ah,4chint 21hpriproc nearpush bxpush cxpush dxmov bx,10;十进制mov dx,0;被除数的高16位mov cx,0;位数rediv: div bx;dxax / bxpush dx;余数mov dx,0inc cxcmp ax,0jnz redivmov ah,2reout:pop dxadd dl,30h;将数值位-字符 1-1int 21hloop reoutpop dxpop cxpop bxretpri endpcode endsendstart2.汇编源程序3.连接目标程序4.调试可执行程序,分析程序的运行结果(六)实验结果分析1、理解寄存器参数传递方式各有什么特点使用简单方便数量少,难以传递多个数据(七)编程提示(a) 二进制显示也可采用移位并判断该位的方式进行。(b) 十进制数采用除以 10 取商的方式。(d) 注意去掉最高位的“0”。 实验六 中断程序设计(一)实验目的1、中断服务子程序的编写。2、BIOS 和 DOS 中断调用。(二)实验设备硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 以上 编辑程序EDIT 或其它编辑程序 汇编程序 MASM.EXE6.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 segmentassume cs:codestart: MOV si,5re:mov ah,1int 21hpush axmov dl,13;回车mov ah,2int 21hmov dl,10;mov ah,2int 21hpop axcmp al,ajbskipcmp al,zJA SKIPSUB AL,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论