收藏 分销(赏)

汇编语言试验参考指导书.doc

上传人:a199****6536 文档编号:2715588 上传时间:2024-06-04 格式:DOC 页数:25 大小:1.73MB 下载积分:10 金币
下载 相关 举报
汇编语言试验参考指导书.doc_第1页
第1页 / 共25页
汇编语言试验参考指导书.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
汇编语言实验指引书 目 录 实验一 DEBUG启动及其基本命令使用……………………………..2 实验二 内存操作数及寻址办法…………………………………………….6 实验三 汇编语言程序调试与运营……………………………………….8 实验四 查表程序设计………………………………………………………10 实验五 系统功能调用………………………………………………………12 实验六 循环程序设计………………………………………………………13 实验七 分支程序设计………………………………………………………15 实验八 子程序设计…………………………………………………………18 实验九 综合程序设计………………………………………………………20 附录 实验报告……………………………………………………………21 实验一 DEBUG启动及其基本命令使用 一.实验目: 掌握DEBUG 基本命令及其功能 二.实验内容: DEBUG是专门为汇编语言设计一种调试工具,它通过步进,设立断点等方式为汇编语言程序员提供了非常有效调试手段。 1、DEBUG程序启动 在DOS提示符下,可键入命令: C>DEBUG[d:][path][文献名][ 参数1][参数2] 其中文献名是被调试文献名称,它须是执行文献(EXE),两个参数是运营被调试文献时所需要命令参数,在DEBUG程序调入后,浮现提示符“-”,此时,可键入所需DEBUG命令。 在启动DEBUG时,如果输入了文献名,则DEBUG程序把指定文献装入内存。顾客可以通过DEBUG命令对指定文献进行修改、显示和执行。如果没有文献名,则是以当前内存内容工作,或者用命名命令和装入命令把需要文献装入内存,然后再用DEBUG命令进行修改、显示和执行。 2、DEBUG重要命令 (1) 汇编命令A,格式为: -A[地址] 该命令从指定地址开始容许输入汇编语句,把它们汇编成机器代码相继存储在从指定地址开始存储器中。 (2) 反汇编命令U,有两种格式: 1)-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一种U命令最后一条指令下一种单元开始显示32个字节。 2)-U范畴 该命令对指定范畴内存单元进行反汇编,例如: -U 04BA:0100 0108或 –U 04BA:0100 L9 此二命令是等效。 (3) 运营命令G,格式为: -G [=地址1][地址2[地址3。。。]] 其中地址1规定了运营起始地址,背面若干地址均为断点地址。 (4) 追踪命令T,有两种格式: 1)逐条指令追踪: -T[=地址] 该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。 2)多条指令追踪: -T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]拟定。 (5) 显示内存单元内容命令D,格式为: -D[地址]或-D[范畴] (6) 修改内存单元内容命令E,它有两种格式: 1)用给定内容代替指定范畴单元内容: -E地址 内容表 例如:-E :0100 F3 “XYZ” 8D 其中F3,“X”“Y”“Z”和8D各占一种字节,用这五个字节代替原内存单元:0100到0104内容,“X”“Y”“Z”将分别按它们ASCII码值代入。 2)逐个单元相继地修改: -E地址 例如:-E 100: 18E4:0100 89.78 此命令是将原100号单元内容89改为78。78是程序员键入。 (7) 检查和修改寄存器内容命令R,它有三种方式: 1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R R命令显示中标志位状态含义如下表所示: 标 志 名 置 位 复 位 溢出Overflow(是/否) OV NV 方向Direction(减量/增量) DN UP 中断Interrupt(容许/屏蔽) EI DI 符号Sign(负/正) NG PL 零Zero(是/否) ZR NZ 辅助进位Auxiliary Carry(是/否) AC NA 奇偶Parity(偶/奇) PE PO 进位Carry(是/否) CY NC 2)显示和修改某个指定寄存器内容,格式为: -R 寄存器名 例如打入:-R AX 系统将响应如下: AX FIF4 : 表达AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0369 :059F 则BX内容由0369改为059F 3)显示和修改标志位状态,命令格式为: -RF 系统将给出响应,如 OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 OV DN EI NG ZR AC PE CY-PONZDINV (8) 命名命令N,格式为: -N 文献名 此命令将文献名格式化在CS:5CH文献控制块内,以便使用L或W命令把文献装入内存进行调试或者存盘。 (9) 装入命令L,它有两种功能: 1)把磁盘上指定扇区内容装入到内存指定地址起始单元中,格式为: -L 地址 驱动器 扇区号 扇区数 2)装入指定文献,格式为: -L [地址] 此命令装入已在CS:5CH中格式化文献控制块所指定文献。 在用L命令前,BX和CX中应包括所读文献字节数。 (10)写命令W,有两种格式: 1)把数据写入磁盘指定扇区: -W 地址 驱动器 扇区号 扇区数 2)把数据写入指定文献中: -W [地址] 此命令把指定内存区域中数据写入由CS:5CH处FCB所规定文献中。在用W命令前,BX和CX中应包括要写入文献字节数。 (11)退出DEBUG命令Q,该命令格式为 Q 它退出DEBUG程序,返回DOS,但该命令自身并不把在内存中文献存盘,如需存盘,应在执行Q命令前先执行写命令W。 三.实验规定: 用汇编语言编写一种计算“3+5”加法程序 四.实验报告: 写出在DEBUG状态下编写、运营程序过程以及调试所中遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 实验二 内存操作数及寻址办法 一.实验目: 1、纯熟掌握DEBUG惯用命令,学会用DEBUG调试程序。 2、掌握数据在内存中存储方式和内存操作数几种寻址方式。 3、掌握简朴指令执行过程。 二.实验内容: 1、设堆栈指针SP=H,AX=3000H,BX=5000H;请编一程序段将AX和BX内容进行互换。请用堆栈作为两寄存器互换内容中间存储单元,用DEBUG调试程序进行汇编与调试。 2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG命令将存储器偏移地址300H~304H持续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行办法,分析每条指令源地址形成过程,当数据传送完毕时,AX中内容是什么。 程序清单如下: MOV AX,BX MOV AX,0304H MOV AX,[0304H] MOV AX,[BX] MOV AX,0001[BX] MOV AX,[BX][SI] MOV AX,0001[BX][SI] HLT 三.实验规定: 1、实验前要做好充分准备,涉及汇编程序清单、调试环节、调试办法,以及对程序成果分析等。 2、本实验只规定在DEBUG调试程序状态下进行,涉及汇编程序、调试程序和执行程序。 四.实验报告: 1、程序阐明。阐明程序功能、构造。 2、调试阐明。涉及上机调试状况、上机调试环节、调试所遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 3、写出源程序清单和执行成果。 实验三 汇编语言程序调试与运营 一.实验目 1.学习数据传送和算术运算指令用法 2.熟悉在PC机上编辑、汇编、连接、调试和运营汇编语言程序过程。 二.实验内容 将两个多位十进制数相加,规定被加数和加数均以ASCII码形式各自顺序存储在DATA1和DATA2为首5个内存单元中,成果送回DATA1处。 三.程序框图 图3.1 两个多位十进制相加程序流程图 四.调试环节 1.编辑源程序,建立一种后来缀为 .ASM文献. 2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。 3.连接目的程序,产生可执行程序。 4.DEBUG调试可执行程序,记录数据段内容。 5.在操作系统状态下,运营程序,并记录屏幕显示内容。 被 加 数 加 数 屏 幕 显 示 内 容 12732 06815 10732 43691 65087 17631 五.思考题 1. 将上述程序改为5位数相加,成果为6位数加法程序。(需考虑进位) 2. 简朴论述上机环节,调试办法。 实验四 查表程序设计 一.实验目: 1、纯熟掌握编写汇编语言原程序基本办法和基本框架。 2、掌握查表法和查表指令XLAT。 3、纯熟使用DEBUG调试程序。 二.实验内容: 用查表办法将一位十六进制数转换成与它相应ASCII码,并将成果存储到ASCI单元中。 三.编程提示: 既然指定用查表办法,那么一方面要建立一种表TABLE。咱们在表中按照十六进制数从小到大顺序放入她们相应ASCII码值。 DATA SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H HEX DB X ;X为待转换十六进制数 ASCI DB ?;存储转换后ASCII码 DATA ENDS 四.实验规定: 实验前要做好充分准备,涉及汇编程序清单、调试环节、调试办法,以及对程序成果分析等 五.实验报告: 1、程序阐明。阐明程序功能、构造。 2、调试阐明。涉及上机调试状况、上机调试环节、调试所遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 3、写出源程序清单和执行成果。 实验五 系统功能调用 一.实验目: 1、掌握接受键盘数据办法,并理解将键盘数据显示时,须转为ASCII码原理。 2、掌握DOS功能调用编程办法。 二.实验内容: 试编写一种汇编语言程序,规定对键盘输入小写字母用大写字母显示出来。 三.编程提示: 运用DOS功能调用INT21H1号功能从键盘输入字符和2号功能在显示屏上显示一种字符。 四.实验规定: 实验前要做好充分准备,涉及汇编程序清单、调试环节、调试办法,以及对程序成果分析等。 五.实验报告: 1、程序阐明。阐明程序功能、构造。 2、调试阐明。涉及上机调试状况、上机调试环节、调试所遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 3、写出源程序清单和执行成果。 name turn d_seg segment para a db 'please input(a^z):','$' b db 0ah,0dh,'$' d_seg ends s_seg segment stack db 90h dup(?) s_seg ends c_seg segment assume cs:c_seg,ds:d_seg,ss:s_seg start: mov ax,d_seg mov ds,ax mov dx,offset a mov ah,09h int 21h mov ah,01h int 21h mov bl,al sub bl,20h mov dx,offset b mov ah,09h int 21h mov dl,bl mov ah,02 int 21h mov ah,4ch int 21h c_seg ends end start 实验六 分支程序设计 一.实验目: 1、掌握分支程序构造。 2、掌握分支程序设计、调试办法。 二.实验内容: 假设有一组数据:5,-4,0,3,100,-51,请编一程序,判断:每个数不不大于0,等于0,还是不大于0;并输出其判断成果。 即: 1 当x>0 y= 0 当x=0 -1 当x<0 三.实验规定: 实验前要做好充分准备,涉及汇编程序清单、调试环节、调试办法,以及对程序成果分析等。 四.编程提示: 1、一方面将原始数据装入起始地址为XX字节存储单元中。 2、将判断成果以字符串形式存储在数据区中,以便在显示输出时调用。 3、其中判断某些可采用CMP指令,得到一种分支构造,分别输出“y=0”,“y=1”,“y=-1”。 4、程序中存在一种循环构造,循环6次,调用6次分支构造后结束。 五.思考题: 程序中原始数据是以如何形式存储在数据区中?请用DEBUG调试程序观测并分析。 六.实验报告: 1、程序阐明。阐明程序功能、构造。 2、调试阐明。涉及上机调试状况、上机调试环节、调试所遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 3、画出程序框图。 4、写出源程序清单和执行成果。 5、回答思考题。 实验七 循环程序设计 一.实验目 1. 掌握循环程序设计办法(两重性循环构造) 2. 掌握对的分派与使用寄存器。 二.实验内容与规定 以GRADE为首地址10个字数组中保存有学生成绩。建立一种10个字RNAK 数组,并依照GRADE中学生成绩将学生名次填入RANK数组中(提示:一种学生名次等于成绩高于等于该学生人数加1)。 寄存器分派状况阐明如下: AX 存储当前被测学生成绩 BX 存储当前被测学生相对地址指针 CX 内循环计数值 DX 存储当前被测学生名次计数值 SI 内循环测试时地址指针 DI 外循环计数值 三.程序框图 图7.1 程序框图 四.思考题 1.改为通过键盘输入方式提供学生成绩。 2.将成绩与名次在屏幕上显示。 3.指出控制循环程序办法,并划分该程序四个构成某些 实验八 子程序设计 一.实验目 1.掌握程序设计办法,合理划分层次 2.掌握子程序调用与返回办法 3.理解子程序嵌套与递归 二.实验内容与规定 编制一程序,规定键入一种班学生成绩,并存储于50字ERADE数组中,然后依照ERADE中成绩,把学生名次填入50字RANK数组中,再按学号顺序把名次从终端上显示出来。 提示: ① 程序MAIN 功能:依照输入学生成绩,计算并显示出学生名次。 ② 程序INPUT 功能:接受一种班级学生成绩,各成绩之间用空格隔开。 ③ 程序RANKP 功能:计算一种班级学生名次。(可参照循环程序(一)中程序段) ④ 程序OUTPUT 功能:输出(显示)一种班级学生名次 ⑤ 程序DECIBIN 功能:十进制转换二进制,存入BX ⑥ 程序BINDEC 功能:十进制转换二进制,并在屏幕上显示。 ⑦ 程序DEC_DIV 功能:BX内容除以CX内容,并在屏幕上显示一位商。 三.程序框图: 图8.1 程序流程图 四.环节 1.自编主程序与子程序。 2.输入本班级某门基本课成绩。 五.思考题 1.写出4位BCD码转二进制数算法。 2.写出AX中进二制数转BCD码算法。 3.将上述子程序构造改为模块化程序设计。 实验九 综合程序设计 一.实验目: 1、掌握分支、循环、子程序调用、DOS功能调用等基本程序构造。 2、掌握综合程序编制及调试办法。 二.实验内容: 设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一种子程序,记录低于60分,60~69分,70~79分,80~89分,90~99分和100分人数,并输出显示记录成果。 三.编程提示: 1、成绩分等某些采用分支构造,记录所有成绩则用循环构造完毕,显示记录成果采用DOS功能调用。 2、记录学生成绩和显示记录成果两某些内容用子程序构造来完毕。 四.实验报告: 1、程序阐明。阐明程序功能、构造。 2、调试阐明。涉及上机调试状况、上机调试环节、调试所遇到问题是如何解决,并对调试过程中问题进行分析,对执行成果进行分析。 3、画出程序框图。 4、写出源程序清单和执行成果。 5、体会和意见。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服