- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
科技学院
课程设计(综合实验)报告
( 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
实验二 查找匹配字符串
一、课程设计DATAS SEGMENT
keyadr label byte;改变变量类型
keymax db 20
keyact db ?
keystring db 20 dup(?);定义一个20字节的缓冲区(关键字)
senadr label byte
senmax db 50
senact db ?
secstring db 50 dup(?);定义一个50字节的缓冲区(句子)
messkey db Enter keyword:,$
messsen db 0dh,0ah,Enter Sentence:,$
nomatch db 0dh,0ah,No match,$
match db 0dh,0ah,Match at location:,$
rest db H of the sentence.,$
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS
START:
main proc far
push ds
xor ax,ax;清零
push ax
文档评论(0)