logo资料库

(合工大)汇编实验.docx

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
(一)实验目的
(二)实验设备
(三)实验内容和要求
(四)预习要求
(五)实验步骤
(六)实验结果分析
汇编语言程序设计实验指导书 合肥工业大学 实验报告 课 程: 汇编语言程序设计 专业班级: 17 级物联网工程 学 姓 号: 2017217xxx 名: 李阡殇 1
汇编语言程序设计实验指导书 实验一 DEBUG 的使用 (一)实验目的 1、熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。 2、掌握 8086/8088 的寻址方式及多字节数据的处理方法。 (二)实验设备 硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 版本以上 调试程序 DEBUG.COM (三)实验内容和要求 实验内容: 1、利用 DEBUG 程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别 送入起始地址为 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) C:>DEBUG↙ – ;(“–”为 DEBUG 提示符,仅当屏幕出现该提示符后,才可输入 DEBUG 命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 186E:0103 186E:0107 186E:010B 186E:010F 186E:0112 186E:0116 MOV AX,[0200]↙ MOV BX,[0202]↙ ADD AX,[0204]↙ ADC BX,[0206]↙ MOV [0208],AX↙ MOV [020A],BX↙ ↙ 4、用“U”命令反汇编验证源程序 –U CS:0100↙ 186E:0100 186E:0103 186E:0107 186E:010B 186E:010F 186E:0112 186E:0116 A10002 MOV AX,[0200] 8B1E0202 MOV BX,[0202] ADD AX,[0204] 03060402 BX,[0206] 131E0602 ADC A30802 MOV [0208],AX 891E0A02 MOV [020A],BX 2
汇编语言程序设计实验指导书 – 注意:  检查源程序是否有错误,若有则返回到第 3 步用“A 地址”命令进行修改,直到 程序无错误。  DEBUG 约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后 不用“H”说明。  在 DEBUG 下,源程序中不能使用“标号”、“变量”和一些伪指令。  在 DEBUG 下,大小写不敏感。 5、程序未执行前,用“R”命令观察,相关寄存器的内容。 –R↙ 如:(AX)= (DI)= ,(BX)= ,(CS)= ,(SI)= ,(IP)= , 。 6、在程序未执行前,用“D”命令观察 DS:0200H,DS:0204H、DS:0208H 单元的内容 –D 200 20B ↙ 7、用“G”命令运行源程序 –G =100 0116 ↙ 8、再用“D”命令观察 DS:0200H~DS:020BH 字节单元中的内容 –D 200 20B↙ 9、用“T”单步操作命令对源程序单步执行,观察 AX、BX、CS、IP 寄存器内容的变化, 并与预计的结果相比较。 注意:  D 命令显示内存数据,注意观察多字节数据在内存中的存放方式。  指令执行的时候,IP 寄存器随着变化,注意观察。 (六)实验结果分析 1、程序运行结果:(AX)= ,(BX)= DS:0208H 四字节单元的内容: 2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。(参考下列程序流 程图) 开始 SI←200H DI←204H BX←208H AX← [SI] DX←[SI+2] AX←AX+[DI] 3 DX←DX+[DI+2 ] [BX]←(AX)
汇编语言程序设计实验指导书 (七)、附加题目: 1. 从 DS:0000H 开始的 5 个 16 位带符号数分别记为 x,y,z,v,w,用 E 命令初始化为: 540,1,-1,1080,0, 试求 w=(v-(x*y+z-540))/x 2. 完成 BX 中 1 的个数的统计。 3. 用串操作指令将 DS:0000 开始 20 个字节初始化为:0CCH。并将这 20 个字节的 内容复制到其后的 20 个字节里。 (八)、程序运行截图 3、 4、 5、 6、 7、 4
8、 9、 六、 1、 2、 附加题、 1、 汇编语言程序设计实验指导书 5
汇编语言程序设计实验指导书 2、 3、 6
汇编语言程序设计实验指导书 7
汇编语言程序设计实验指导书 实验二 汇编语言程序设计(顺序、多分支、循环) 一. 实验目的 1、掌握顺序和循环程序结构和设计方法; 2、熟悉在 PC 机上建立、汇编、连接、调试和运行 8086/8088 汇编语言程序的过程。 二. 实验内容 1、X、Y、Z、V 均为字变量,在 X、Y、Z、V 字单元中存放是 16 位带符号数。 试编写汇编语言程序完成以下功能: ①计算表达式值(V–(X*Y+Z-720))/X; ②将上述表达式运算结果整数放在 SUM1 单元,余数放在 SUM2 单元。 2、使用地址表实现如下功能:根据输入的数字 1-7,分别显示相应的英文星 期名,如果输入其他字符,则重新输入。 3、求一个班 50 名学生成绩的平均值、最大值和最小值,并将结果显示出来。 4、从键盘读入一个字符串,以 Enter 结束,字符串不超过 50 个字符,并打印 该字符串;查找中间是否有‘masm’子串。如果有,输出‘Yes’;否则,输出‘No’)。 三. 实验过程和程序 1、 设置参变量:;设置 x=2 y = 10 z= 700 v = 10 计算(10-(2x10 + 700 -720)) /2 = 5 利用-g 命令分段运行最终验证商 ax 是否等于 5 余数 dx 是否为 0 源代码如下: stack dw 512 dup(?) ends stack segment data x dw 0002h dw 000ch y z dw 02bch v dw 000ch sum1 dw sum2 dw data code assume cs:code,ds:data,ss:stack start: mov ax,data ends segment segment stack ? ? 8
分享到:
收藏