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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编语言实验指导书Word格式.docx

1、如果没有提供偏移地址,则通常就是当前偏移地址。对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:L字节长度”。DEBUG命令一览:分类命令格式功能简介读写寄存器R显示所有寄存器的当前内容R寄存器名显示和修改指定寄存器内容RF显示和修改标志寄存器内容汇编和反汇编A内存地址从指定地址开始汇编指令U内存块对指定内存块进行反汇编执行指令T:内存地址条数单步或多步执行指令P=内存地址条数G=内存地址连续执行指令G=内存地址断点地址设断点执行程序读写内存D内存块显示指定内存块内容E 内存地址 字符或数值串修改指定内存内容F 内存块 字符或数值串填充

2、指定内存块S 内存块 字符串或数值在指定内存块中查找串M 内存块1 内存块2的首地址复制内存块内容C 内存块1 内存块2的首地址比较两个指定内存块读写磁盘Nd:path文件名.扩展名指定欲读写的磁盘文件W 内存地址将指定内存块写入文件L 内存地址将文件调入内存读写I/O端口I 端口地址读入指定端口的内容O 端口地址 数值将数据写入指定端口十六进制加减H 数值1 数值2计算并显示两数之和,两数之差退出DEBUGQ退出DEBUG,返回DOS1、DEBUG程序的启动在DOS提示符下,可键入命令:C:DEBUGDEBUG命令的完整格式为:DEBUG d:path文件名 参数1参数2。其中d:是盘符,p

3、ath是路径,文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。2、DEBUG的主要命令(1)、检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态,格式为:-R例如:输入-

4、R,得到结果如下:2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名输入-R AX,得到结果如下:表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,输入修改内容后,如: 则AX内容由0000改为0A0A3)R命令显示标志寄存器标志位状态的含义如下表所示:标 志 名置 位(值为1)复 位(值为0)溢出Overflow(是/否)OVNV方向Direction(减量/增量)DNUP中断Interrupt(允许/屏蔽)EIDI符号Sign(负/正)NGPL零Zero(是/否)ZRNZ辅助进位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO进

5、位Carry(是/否)CYNC修改标志位状态,命令格式为:-RF输入-RF,输出结果如下:这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如: (2)、汇编命令A,格式为:-A地址该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。A命令中如果没有指定地址,则接着上一个A命令的最后一个单元开始;若还没有使用过A命令,则从当前CSIP开始。输入代码,则代码存储在OAFO:0100至OAFO:010D单元中。(3)、反汇编命令U,有两种格式:1)-U地址该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一

6、条指令的下一个单元开始显示32个字节。2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 0100 011E或-U 100 11E 或-U 0AF0:0100 011E或U 0AF0:0100 L1F(L用来引导指令的条数,1F为指令的条数),这些命令是等效的。(4)、运行命令G,格式为:-G =地址1地址2地址3。其中地址1规定了运行起始地址,后面的若干地址均为断点地址。若省略地址,则运行从IP所指的地址开始。(5)、追踪命令T,有两种格式:1)逐条指令追踪:-T该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。2)多条指令追踪:(有问题)-T=地址值该命令从指定地址

7、起执行n条命令后停下来,n由值确定。(6)、显示内存单元内容的命令D,格式为:-D地址(从给出的地址开始连续显示128个字节的单元内容)或-D范围,例如:(7)、修改内存单元内容的命令E,它有两种格式:1)用给定的内容代替指定范围的单元内容: -E地址 内容表 例如:-E 2000:0100 F3 “XYZ” 8D其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。2)逐个单元相继地修改: -E地址 例如:-E 100: 0AF0:0100 F3.E7 此命令是将原100号单元的内容F

8、3改为E7。E7是键入值。(8)、命名命令N,格式为:-N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。(9)、装入命令L,它有两种功能:1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:-L 地址 驱动器 扇区号 扇区个数2)装入指定文件,格式为:-L 地址此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。在用L命令前,BX和CX中应包含所读文件的字节数。3)装入已在文件控制块中的文件,格式为:-L此命令与-L 地址相同功能。(10)、写命令W,有两种格式:1)把数据写入磁盘的指定扇区:-W 地址 驱动器

9、 扇区号 扇区数2)把数据写入指定文件中:-W 地址此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。(11)、十六进制运算命令H,格式为:H数据1数据2其功能是将两个十六进制数进行相加、相减运算,结果显示在屏幕上。(12)、退出DEBUG命令Q,该命令格式为:-Q它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。三实验要求:用汇编语言编写一个计算“3+5”的加法程序,并将结果输出到屏幕上。四实验报告:写出在DEBUG状态下编写、运行程序的过程以及调试所中遇

10、到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。实验二 内存操作数及寻址方法1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。3、掌握简单指令的执行过程。1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH

11、。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSIHLT1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程

12、中的问题进行分析,对执行结果进行分析。3、写出源程序清单和执行结果。实验三 汇编语言程序的调试与运行一实验目的1学习数据传送和算术运算指令的用法2熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。二实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。三程序框图图3.1 两个多位十进制相加程序流程图四调试步骤1编辑源程序,建立一个以后缀为 ASM的文件.2汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3连接目标程序,产生可执行程序。4DEBUG调试可

13、执行程序,记录数据段的内容。5在操作系统状态下,运行程序,并记录屏幕显示内容。被 加 数加 数屏 幕 显 示 内 容127320681510732436916508717631五思考题1 将上述程序改为5位数相加,结果为6位数的加法程序。(需考虑进位)2 简单叙述上机步骤,调试方法。实验四 顺序程序设计1、熟练掌握编写汇编语言原程序的基本方法和基本框架。2、掌握查表法和查表指令XLAT。3、熟练使用DEBUG调试程序。用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到ASCI单元中。三编程提示:既然指定用查表的方法,那么首先要建立一个表TABLE。我们在表中按照十六进制数

14、从小到大的顺序放入他们对应的ASCII码值。DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB X ;X为待转换的十六进制数ASCI DB ?;存放转换后的ASCII码DATA ENDS四实验要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等五实验报告: 1、程序说明。实验五 循环程序设计1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。2、掌握DOS功能调用的编程方法。试编写一个汇编语言程序,

15、要求对键盘输入的小写字母用大写字母显示出来。利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。实验六 分支程序设计1、掌握分支程序的结构。2、掌握分支程序的设计、调试方法。假设有一组数据:5,-4,0,3,100,-51,请编一程序,判断:每个数大于0,等于0,还是小于0;并输出其判断结果。即: 1 当xy= 0 当x=0 -1 当x四编程提示:1、首先将原始数据装入起始地址为XX的字节存储单元中。2、将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。3、其中判

16、断部分可采用CMP指令,得到一个分支结构,分别输出“y=0”, “y=1”, “y=-1”。4、程序中存在一个循环结构,循环6次,调用6次分支结构后结束。五思考题:程序中的原始数据是以怎样的形式存放在数据区中的?请用DEBUG调试程序观察并分析。六实验报告:3、画出程序框图。4、写出源程序清单和执行结果。5、回答思考题。实验七 子程序设计1 掌握循环程序设计的方法(两重性循环结构)2 掌握正确分配与使用寄存器。二实验内容与要求以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK 数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于

17、成绩高于等于该学生的人数加1)。 寄存器分配情况说明如下: AX 存放当前被测学生的成绩 BX 存放当前被测学生的相对地址指针 CX 内循环计数值 DX 存放当前被测学生的名次计数值 SI 内循环测试时的地址指针 DI 外循环计数值图71 程序框图四思考题1改为通过键盘输入方式提供学生成绩。2将成绩与名次在屏幕上显示。3指出控制循环程序的方法,并划分该程序的四个组成部分实验八 DOS中断及BIOS中断程序设计1掌握程序设计方法,合理划分层次2掌握子程序的调用与返回的方法3了解子程序的嵌套与递归编制一程序,要求键入一个班的学生成绩,并存放于50字的ERADE数组中,然后根据ERADE中的成绩,把

18、学生名次填入50字的RANK数组中,再按学号顺序把名次从终端上显示出来。提示:1 程序MAIN 功能:根据输入的学生成绩,计算并显示出学生名次。2 程序INPUT接收一个班级学生的成绩,各成绩之间用空格隔开。3 程序RANKP计算一个班级学生的名次。(可参照循环程序(一)中的程序段)4 程序OUTPUT输出(显示)一个班级的学生名次5 程序DECIBIN十进制转换二进制,存入BX6 程序BINDEC十进制转换二进制,并在屏幕上显示。7 程序DEC_DIV功能:BX的内容除以CX的内容,并在屏幕上显示一位商。三程序框图:图81 程序流程图四步骤1自编主程序与子程序。2输入本班级某门基础课成绩。五

19、思考题 1写出4位BCD码转二进制数的算法。2写出AX中进二制数转BCD码的算法。3将上述子程序结构改为模块化程序设计。实验九 综合程序设计1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。2、掌握综合程序的编制及调试方法。设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一个子程序,统计低于60分,6069分,7079分,8089分,9099分和100分的人数,并输出显示统计结果。1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。5、体会和意见。

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

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