继续向后执行,输入第一个“abcde”字符串后,数据段如下所示:
此时寄存器:
程序继续向后运行,输入第二个“efg”后,程序继续向后运行,当到“CMP”时,可以看到此时寄存器的数据段:
第 14 页
此时寄存器状态:
在程序运行到最后是,寄存器状态为:
寄存器中的cx由最初的5变成了4,完成了判断了字符串大小。
五、结论
通过本次实验,我学会了如何利用已经学会的语言命令来实现一些简单的程
序,如何使用”CMPSB”来两个字符串比较大小的方法,同时也对汇编的上机编程有了更深入的了解。
第 15 页
实验三 求学生名次
一、实验目的
8个)及其5门课程的总成绩(百分制),输出任意名次的学生的姓名及其5门课程的总成绩(按总成绩的高低排序,总成绩最高者为第一名)
从键盘输入若干个学生(总数不超过500)的姓名(英文字母不超过
二、实验环境
该试验包括的硬件和软件条件如下: 1、硬件环境
(1)Intel i5 3317U (2)内存4G 2、软件环境
(1)Window XP Professor (2)MASM6.11开发软件
三、实验步骤
1、画出满足上述要求的程序流程图 2、写出源程序及程序段说明
四、实验结果及其分析
1、程序流程图
第 16 页
主程序
开始 调用Numproc 输入总学生数 调用input输入学生成绩以及姓名 ax←count ax←ax+1 jnz cmp ax,total 调用search查找结束
图3.1.1主程序流程图
第 17 页
Numproc
开始 Bx清零 输入一个数字字符 是回车? N Y Bx<-bx*10+ax 结束 图3.1.2Numproc子程序流程图
第 18 页开始 输入一个字符 是回车? 将该字符加到存储姓名的字符串中,字符串下标加1 字符串下表结束 结束