华中科技大学汇编实验报告5(2)

2018-12-05 21:04

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

//初始化三个学生信息用于测试 strcpy(info[0].name,\info[0].score[0] = 86; info[0].score[1] = 82; info[0].score[2] = 88; info[0].score[3] = 0;

strcpy(info[1].name, \info[1].score[0] = 48; info[1].score[1] = 79; info[1].score[2] = 46; info[1].score[3] = 0;

strcpy(info[2].name, \info[2].score[0] = 96; info[2].score[1] = 92; info[2].score[2] = 98; info[2].score[3] = 0; do{

printf(\gets(name); _asm {

mov lea lea mov

ecx, 3 edi, info[0]; esi, name edx, 12

al, byte ptr[esi] bl, byte ptr[edi] al, bl NEXT al, '\\0' FIGURE edx

4

char int char

name[12]; i, j; op;

//输入的姓名

//计数器

LOAPI:

LOAPJ :

mov mov cmp jnz cmp jz

dec

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

}

for (i = 0; i < 3; i++) { }

5

inc inc jmp dec jz add add jmp add mov mov add add mov mov add add mov mov add mov div mov mov

edi esi LOAPJ

NEXT :

ecx REINPUT edx, 8 edi, edx LOAPI edi, edx

al, byte ptr[edi] ah, 0 ax, ax ax, ax

dl, byte ptr[edi + 2] dh, 0 ax, dx ax, dx

dl, byte ptr[edi + 4] dh, 0 ax, dx bl, 7 bl ah, 0

word ptr[edi + 6], ax

FIGURE :

if (!strcmp(info[i].name, name)) { }

printf(\for (j = 0; j < 4; j++) { }

printf(\

printf(\

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

}

for (i = 0; i < 3; i++) { }

getchar(); return 0;

printf(\for (j = 0; j < 4; j++){ }

printf(\

printf(\

printf(\op = getchar(); getchar();

_asm{ }

REINPUT:

} while (op == 'Y' || op == 'y');

3.1.4 实验步骤

1. 使用Visual C++录入源程序,编译,链接,运行。

2. 观察提示信息,若出错,则用编辑程序修改错误,修改后再重新编译 3. 执行该程序。观察程序运行结果。

3.1.5 实验记录

(包括实验条件、输入/输出、错误和修改等信息的记录)

1、 实验环境条件:Visual C++;Visual C++窗口; 2、 编译源程序时没有发生异常。 3、 连接过程没有发生异常。

4、 输入提前录入的三个学生姓名。

6

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

5、 运行目标程序

6、 根据程序提示输入查找的学生姓名

输入提前录入的学生姓名,输出该学生的各项成绩,并提示是否继续。

3.2 任务2

3.2.1 设计思想及存储单元分配

任务:在C语言程序中调用 汇编语言实现的函数

对于实验二的程序进行改造,主控程序、以及输入输出等功能用C语言实现,学生姓名搜索和成绩计算用独立的汇编语言子程序的方式实现; 在C语言程序中调用汇编语言子程序。

整体结构功能通过一个do-while循环来实现,而循环的条件根据使用者输入“Y”或“N”来判断。在整个循环的过程中,C语言通过调用汇编语言子程序,来达到学生姓名搜索和成绩计算的功能。而这两个功能则独立利用汇编语言子程序的方式来实现。

1.结构设计:

7

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

struct Stu{ };

2.存储单元分配

Name:分配12个字节来存储名字

Score:分配1个短整型数组,数组包含4个元素,分别为语文、数学、英语和平均成绩。

char name[12]; short score[4];

//储存姓名 //储存成绩

3.2.2 流程图

3.2.3 源程序

汇编语言子程序 .386

.model flat, c .code public dif dif

proc

par1:dword,par2:dword

ecx, 1000 edi, par1; esi, par2 edx, 12

al, byte ptr[esi] bl, byte ptr[edi] al, bl NEXT al, 0 FIGURE edx edi esi LOAPJ

mov

mov mov mov

LOAPI:

LOAPJ:

mov mov cmp jnz cmp jz

dec inc inc jmp dec

NEXT:

ecx

8


华中科技大学汇编实验报告5(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重庆大学体育知识题库

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

马上注册会员

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