哈尔滨预售证查询系统:汇编笔记2

来源:百度文库 编辑:中财网 时间:2024/05/02 07:45:08

实验一
关于本程序的整体说明:
本程序的目的是利用5402进行处理,在屏幕上显示“hello,world!”
其中使用了 #ifdef FILEIO 来选择是否输入字符串。
流程图如下: 

定义了 FILEIO 么?
|
/ \
Y / \ N
输出“hello,world!” 输出“hello,world!”
| |
要求输入字符串 OVER
|
输出读入字符串大小
|
OVER

/* ======= hello.h ========== 头函数 
struct PARMS { /*头函数中仅定义了一个结构体 PARMS*/
int Beta;
int EchoPower;
int ErrorPower;
int Ratio;
struct PARMS *Link;
};
======================= */
/* ======== hello.c ======== */
#include
#include "hello.h"
#define BUFSIZE 30 /*定义BUFSIZE(缓冲空间)为30*/
struct PARMS str = /*全局变量是一个结构体 str*/
{
2934, /*Beta = 2934*/
9432, /*EchoPower = 9432*/
213, /*ErrorPower = 213*/
9432, /*Ratio = 9432*/
&str /*Link 是指向str自己的指针。本程序中并未使用*/
}; /*PARAMS是在hello.h中定义的结构类型*/
/* 
* ======== main ======== 主函数
*/
void main()
{
#ifdef FILEIO /*第一次运行程序时,FILEIO没有定义,此处不执行,只执行puts()一句。*/
int i;
char scanStr[BUFSIZE]; /*输入字符存入scanStr数组中*/
char fileStr[BUFSIZE]; /*存储从文件中读出的内容*/
size_t readSize; /* size_t 是在stdio.h中定义的无符号整型,用来存储输入字符数目*/
FILE fptr; /*FILE是在stdio.h中定义的一结构变量,用来记录控制输入输出流的所有信息,fprt是文件指针*/
#endif
/* 向标准输出设备写一字符串*/
puts("hello world!\n");

#ifdef FILEIO
/*清除字符型数组*/
for (i = 0; i < BUFSIZE; i++) {
scanStr[i] = 0 /* 预置的语法错误(少一个“;”)*/
fileStr[i] = 0;
}

/* 从输入设备读入一字符串,并存入scanStr数组中 */
scanf("%s", scanStr);

/*在主机上打开一文件,然后向文件写入刚才的字符串 */
fptr = fopen("file.txt", "w");
fprintf(fptr, "%s", scanStr);
fclose(fptr);

/* 在主机打开一文件,然后从中读入字符串 */
fptr = fopen("file.txt", "r");
fseek(fptr, 0L, SEEK_SET); /*SEEK_SET是stdio.h中通过宏定义定义的常量0x0000*/
/*此句如果没有,运行结果不改变,此处为了保证程序的规范(修改方便)*/
readSize = fread(fileStr, sizeof(char), BUFSIZE, fptr); /*获取文件大小,即输入字符数目*/
printf("Read a %d byte char array: %s \n", readSize, fileStr); /*输出“Read a ??(数字) byte char array: ??????(字符串)”*/
fclose(fptr); /*关闭文件*/
#endif
}

实验二
/* ======== hello.c ======== */

/* DSP/BIOS 头文件*/
#include
#include

/* 被配置工具创建的对象*/
extern far LOG_Obj trace;

/* ======== main ======== */
Void main()
{
LOG_printf(&trace, "hello world!"); /*本程序简单,仅有一句话意思很明了了。*/

/* 返回后进入DSP/BIOS闲置循环 */
return;
}