2022年2022年计算机组成原理汇编字符串比较试 .pdf

上传人:C****o 文档编号:39702439 上传时间:2022-09-07 格式:PDF 页数:4 大小:35.54KB
返回 下载 相关 举报
2022年2022年计算机组成原理汇编字符串比较试 .pdf_第1页
第1页 / 共4页
2022年2022年计算机组成原理汇编字符串比较试 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年2022年计算机组成原理汇编字符串比较试 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机组成原理汇编字符串比较试 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验 6 汇编字符串比较试验一、实验目的1 了解汇编程序编写的格式2 熟悉汇编程序的编译、链接、运行的过程3 学会使用汇编语言的dos 中断、字符串输入输出,以及对串的一些操作二、试验原理1.当 dos 中断为 21h 时,为 dos 系统功能调用。此时,如果 AH 寄存器内的值为0AH,则由用户从键盘输入串到缓冲区。输入的数据将保存在DS段。DX为缓冲区的首址,(DS:DX)=缓冲区最大字符数,(DS:DX+1)=实际输入的字符数,(DS:DX+2)=串的实际首地址。2.80X86 计算机,REPE指令为字符串比较指令,执行的操作为:如(Count Reg)=0 或 ZF=0(即某次比较的结

2、果两个操作数不等)时退出,否则往下执行。(Count Reg)(Count Reg)-1 执行其后的串指令 重复 3.80X86 计算机,CLD(clear direction flag)指令使 DF=0,在执行串处理指令时,可使地址自动增量。三、试验步骤1.在数据段定义两个字符串String1,String2 2.定义两个结果显示字符串mess1 mess2 3.保留 cpu 现场,将ds ax 数据保存4.将 datas 赋给 ds,codes 赋给 cs,stacks赋给 ss 5.将 String1 的首地址赋给si,String2 的首地址赋给di 6.设置 flag 位为 0,对两

3、个字符串进行比较7.对结果进行判断,并调用dos 中断,输出显示不同的结果(mess1 or mess2)四、实验结果与分析实验代码如下:datas segment;数据段string1 db This is the String1.string2 db This is the String2.mess1 db Match!,13,10,$mess2 db Not Match!,13,10,$datas ends stacks segment;堆栈段stacks ends codes segments assume cs:codes,ds:datas,ss:stacks 名师资料总结-精品资料

4、欢迎下载-名师精心整理-第 1 页,共 4 页 -main proc far start:push ds;保护当前cpu 数据sub ax,ax push ax mov ax,datas;将 datas 赋给数据段mov ds,ax move es,ax lea si,string1;将 string1 的偏移地址给si lea di,string2;将 string2 的偏移地址给di cld;设置 flag 位为 0 串处理操作时地址会自动增量mov cx,20;将字符串长度赋值给cx 对比较次数记数repz cmpsb;串比较jz match;串相同lea dx,mess2;串不同jmp

5、 short disp match:lea dx,mess1 disp:mov ah,09;字符串输出int 21h;调用 dos 中断ret main endp codes ends end start 由键盘输入字符串的比较代码如下:datas segment;数据段string1 db 100,?,100 dup(?)string2 db 100,?,100 dup(?)mess1 db Match!,13,10,$mess2 db Not Match!,13,10,$mess3 db 13,10,$doscall equ 21h display equ 09h key_in equ 0

6、Ah datas ends stacks segment;堆栈段stacks ends 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -codes segments assume cs:codes,ds:datas,ss:stacks main proc far start:push ds;预处理保留现场sub ax,ax push ax mov ax,datas;将 datas 赋给数据段mov ds,ax move es,ax lea dx,string1;输入 string1 mov ah,key_in int doscall sub ch,ch mov cl,s

7、tring1+1;将 string1 的长度保存在cl 中add dx,2;将 string1 的串起始地址放入dx 然后存入si mov si,dx lea dx,mess3;打印换行mov ah,display int doscall lea dx,string2;输入 string2 mov ah,key_in int doscall sub ch,ch add dx,2;将 string2 的串起始地址放入dx 然后存入si mov di,dx cmp cl,string2+1;比较两个字符串长度je compare lea dx,mess2;不相等jmp short disp cld

8、;将 df 置零执行串处理时使地址自增compare:repz cmpsb;比较串jz match;相等跳转lea dx,mess2 jmp short disp ;不相等跳转match:lea dx,mess1 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -disp:;打印结果mov ah,display int doscall ret main endp codes ends end start 五、感想与总结通过这次汇编实验,初步学会了怎么样用汇编语言来编程,懂得了如何获得键盘输入数据以及使用dos 中断来输出,同时也感受到对于字符串的操作还不是很熟练,需要加强,同时对于系统的标志位的用途也还不是很熟悉。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁