汇编语言程序设计实验报告(3)

2018-12-19 23:36

实验二 比较两个字符串的大小

一、实验目的

1、从键盘上输入两个字符串,比较两个字符串的大小; 2、如果第一个字符串比第二个字符串大,则显示1; 3、如果两个字符串相等,则显示0;

4、如果第一个字符串比第二个字符串小,则显示-1。

二、实验环境

该试验包括的硬件和软件条件如下: 1、硬件环境

(1)Intel i5 3317U (2)内存4G 2、软件环境

(1)Window XP Professor (2)MASM6.11开发软件

三、实验步骤

1、画出实现上述功能的汇编语言程序流程图。 2、写出实现上述功能的汇编语言程序。

3、编译、连接编写的汇编语言程序,并运行生成的可执行文件,描述其执行情况。

4、对上述程序进行调试,比较反汇编后的程序和源程序的区别。 5、描述反编译后的程序在执行之前数据段的内容以及调试过程中各寄存器的变化情况和执行结束后数据段的内容。

四、实验结果及其分析

1.程序流程图

第 9 页

开 始 提示输入第一个字符串 输入第一个字符串 提示输入第二个字符串 输入第二个字符串 将string1的长度存到bl中 然后和string2的长度比较 保证di为较短长度的字符串 JB REPZ CMPSB JZ RESULT “-1” RESULT “0” JA RESULT “1” EXIT

第 10 页

2.程序代码

data segment

msg1 DB \string1 DB 100,0,100 dup(?)

msg2 DB 0ah,0dh,\msg4 DB 0ah,0dh,\string2 DB 100,0,100 dup(?) msg3 db 0ah,0dh result DW ?,'$' Data ends

Stack segment para stack db 20h dup(0) Stack ends code segment

Assume Cs:code,Ss:stack,ds:Data Start: mov ax,data mov ds,ax mov es,ax lea dx,msg1 mov ah,09h int 21h

lea dx,string1 mov ah,0ah int 21h xor bx,bx

mov bl,string1+1 lea dx,msg3 mov ah,09h int 21h lea dx,msg2 mov ah,09h int 21h

lea dx,string2 mov ah,0ah int 21h lea dx,msg3 mov ah,09h int 21h

cmp bl,string2+1 ja lop1 jb lop2 jmp lop3

lop1: mov cl,string2+1 jmp lop3

第 11 页

lop2: mov cl,string1+1 jmp lop3 lop3: mov cl,bl cld

lea di,string2+2 lea si,string1+2 repz cmpsb ja mat1 jb mat2 jz mat3

mat1: mov result,'1' lea dx,msg4 mov ah,09h int 21h

lea dx,result mov ah,09h int 21h jmp exit

mat2: mov result,'1-' lea dx,msg4 mov ah,09h int 21h

lea dx,result mov ah,09h int 21h jmp exit

mat3: mov result,'0' lea dx,msg4 mov ah,09h int 21h

lea dx,result mov ah,09h int 21h jmp exit

exit: mov ah,4ch int 21h code ends end start

第 12 页

四、运行结果及其分析

提示输入第一个字符串:输入第一个字符串“asd” 提示输入第二个字符串:输入第二个字符串“qwe” 显示结果result“-1”:

调试程序:

在操作前,可以看到数据段内容为:

在初始化数据之后,寄存器:

此时寄存器:

第 13 页


汇编语言程序设计实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:08-09学年高一上学期期末试题(物理1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: