文档详情

华北电力大学汇编实验报告书.doc

发布:2016-12-16约1.75万字共21页下载文档
文本预览下载声明
科技学院 课程设计(综合实验)报告 ( 2015 -- 2016 年度第 1 学期) 名 称:汇编语言程序设计综合实验 题 目:汇编语言程序设计综合实验 院 系: 计算机系 班 级: 网络 学 号: 学生姓名: 指导教师: 熊海军 王蓝婧 设计周数: 一 周 成 绩: 日期:2015年 12 月 30 日 实验一 比较字符串sample 一、课程设计(综合实验)的目的与要求 熟悉DEBUG有关命令的使用方法; 利用DEBUG掌握有关指令的功能;利用DEBUG运行简单的程序段。 进入和退出DEBUG程序; 学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下; 利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。 二、设计(实验)正文 (1)设计思路 通过实现简单的比较字符串的程序初步熟悉汇编程序的编写与功能实现。 (2)程序框图 (3)程序实现 DATAS SEGMENT string1 db Move the cursor backward. string2 db Move the cursor backward. mess1 db Match.,13,10,$ mess2 db No match!,13,10,$ DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS START: main proc far ;设置堆栈为返回 push ds;保存旧数据段 sub ax,ax;清零 push ax;保存ax ;设置DS寄存器为当前数据段 mov ax,datas;数据段地址 mov ds,ax mov es,ax ;程序的主要部分 lea si,string1;设置串比较命令的初值,将string1的偏移地址放到si中,使si指向string1 lea di,string2 cld;清除方向标志 mov cx,25;进行25次字符比较 repz cmpsb;如果ds:si和es:di所指向的两个字节相等,则继续比较,否则停止循环 jz match lea dx,mess2 jmp short disp match: lea dx,mess1 disp: mov ah,09h int 21h ret;返回DOS main endp CODES ENDS END START (4)实验结果 三、课程设计(综合实验)总结或结论 本次试验利用例1.1比较字符串sample,熟悉了汇编编程环境,掌握了汇编程序的整体结构,为后继实验做了很好的准备。 四、参考文献 [1] 沈美明, 温冬婵.IBM-PC汇编语言程序设计. 清华大学出版社, 第二版. 2003.12 实验二 查找匹配字符串 一、课程设计(综合实验)的目的与要求 程序接受用户键入的一个关键字以及一个句子。如果句子中不含关键字则显示‘no match’;如果句子中包含关键字则显示‘match’,且把该字在句子中的位置用十六进制数显示出来。 二、设计(实验)正文 (1)设计思路 1、输入关键字和一个句子,分别存入相应的缓冲区中。可用DOS的10#功能调用。 2、在句子中查找关键字。 2.1关键字和句子中相应字段的比较可用串比较指令。为此必须定义附加段,但附加段和数据段课定义为同一段,以便于串指令的使用。相应的寄存器内容确定如下: SI 寄存器为关键字的指针 DI 寄存器为句子中正相比较的字段的的指针 DH 寄存器存放关键字的字母个数 BX 寄存器存放句子中当前正在比较的字段的首地址 2.2整个句子和关键字的比较过程可以用一个循环结构来完成。循环次数为:(句子长度-关键字长度)+1 3、输出信息。用DOS系统#号功能调用,分“找到”和“未找到”两种情况分别显示不同信息。 4、数制转换。通过循环移位法将二进制转换为十六进制。 (2)程序框图 (3)程序实现 DATAS SEGMENT keyadr label byte;改变变量类型 keymax
显示全部
相似文档