深圳大学 计算机系统(1) 实验报告4:四子棋
- 格式:docx
- 大小:586.83 KB
- 文档页数:11
单片机设计实验报告2012年小学期单片机设计实验报告题目:基于触摸显示模块的四子棋游戏设计班级:2010211122学生姓名:李济汉学号:10210737班内序号:20小组组号:01同组成员:陈曦、杨天姝指导教师:葛顺明老师单片机设计实验报告基于触摸显示模块的四子棋游戏设计实验摘要本实验利用单片机PIC32MX795F512L、触摸显示屏TFT3.2(320×240) 以及扬声器设计实现了一个带有音乐伴奏的触摸式四子棋游戏“Tac Tic Toe”。
本实验的整体工作进程可划分为硬件实现与软件编程两部分。
硬件电路的正确连接使得整个系统按预期的逻辑运行,测试结果稳定并且没有发生严重故障;软件逻辑的正确实现一方面使单片机很好地控制触摸屏、扬声器的输出效果,另一方面使游戏正常运行,没有出现逻辑错误。
本实验的亮点在于:单片机对触摸屏的驱动与控制的实现、音乐电路的设计、显示与音乐播放同步机制的实现、四子棋逻辑的设计,同时程序设计框架合理系统,函数封装清晰有序,具有较强的稳定性与可扩展性。
关键字PIC32MX795F512L单片机触摸屏 LCD液晶显示四子棋音乐模块一.实验设计1. 实验概况我们的实验课题是做一个触摸式四子棋游戏。
从整体上看,我们利用单片机作为控制器,它通过与触摸屏的各管脚相连接获得触摸屏输入坐标信号,并控制LCD显示屏并行输出,显示相应图像,同时用一个与扬声器电路连接的接口输出音乐。
游戏的执行逻辑是:首先显示欢迎界面并播放音乐,接下来显示棋盘。
游戏单片机设计实验报告2. 系统硬件设计①引脚接口设计单片机部分:PIC32MX795F512L单片机是具有USB、CAN与以太网的32位高性能闪存式单片机,共有引脚100个,引脚分布如下[1]:图中黄色部分表示该引脚被PIC32单片机内部集成电路所占用,拥有固定功能,不能为开发者提供其他功能。
触摸显示屏部分:对于TFT触摸显示屏来说,各引脚功能如下(见下图):2端口为LCD显示屏背光LED端,DB0-DB15为并行16位数据端口。
人工智能作业姓名:guojl学号:2620139012 指导老师:刘峡壁1. 要求每一道编程题需提交四份文件:(1)可执行程序;(2)源代码;(3)程序设计说明;(4)程序使用说明。
注:以上文件请打包成一个压缩文件,以“学号_姓名_大作业名称”方式命名后提交。
在文件中请留下你的个人联系方式,以便在出现文件不能解压、不能打开、程序不能编译运行等各种情况时与你联系Implement a computer game program which must satisfy the following requirements:1. Use alpha-beta algorithm to search the solutions;2. The allowed maximum depth of the game tree is 8;3. Use neural network to evaluate the states of leaves in the game tree;4. Use some machine learning method to train this neural network in the process ofcompeting against itself or others.Tic Tac Toe on a 4x4 Board(4x4一字棋)Playing Rules:1) X always goes first.2) The Players alternate placing Xs and Os on the board until either (a) one player hasfour in a row horizontally, vertically or diagonally; or (b) all 16 squares are filled.3) If a player is able to draw four Xs or four Os in a row, that player wins.4) If all 16 squares are filled and neither player has four in a row, the game is a draw.1,给电脑安装JDK1.6以上版本,推荐JDK1.72,请将BP_net_weight.txt文件拷贝到我的电脑的C盘根目录下3,点击运行Tic-Toc-Too.jar或者Tic-Toc-Too-*.exe其中包结构如下:1,BpNeuralNetworks代码如下:package ncse.bpNeuralNetworks;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;/*** 神经网络评估* @author guojl* @version 20141124*/public class BpNeuralNetworks {private static double ETA = 0.7;private static int N = 4; // 输入层节点数private static int SIZE = N * N;private static int MAXVAL = Short.MAX_VALUE;private static int MINVAL = Short.MIN_VALUE;private double input_layer[]; // 输入层private double competition_layer[]; // 隐藏层private double output_layer; // 输出层(激活函数作用之前)private double y_i; // 神经网络输出(经过激活函数作用)private double w_ji[]; // 隐藏层到输出层权重,隐藏层N个节点到输出层1个节点private double w_kj[][]; // 输入层到隐藏层权重,输入层N个节点到隐藏层N 个节点private double y_j[]; // 隐藏层经过激活函数作用之后,即出输出的输入// private String filepath=System.getProperty("user.dir")+"//src//ncse//res//BP_net_weight.txt" ;// private String filepath=getClass().getResource("/")+"//ncse//res//BP_net_weight.txt" ;private String filepath="C://BP_net_weight.txt" ;// 神经网络初始化public BpNeuralNetworks() {input_layer = new double[SIZE];competition_layer = new double[SIZE];w_ji = new double[SIZE];w_kj = new double[SIZE][SIZE];y_j = new double[SIZE];init_net();}// 初始化神经网络的输入层隐藏层输出层private void init_net() {for (int i = 0; i < SIZE; i++) {input_layer[i] = 0.0;competition_layer[i] = 0.0;}output_layer = 0.0;}// 初始化权重public void init_weight() {for (int i = 0; i < SIZE; i++) {w_ji[i] = Math.random();}for (int i = 0; i < SIZE; i++) {for (int j = 0; j < SIZE; j++) {w_kj[i][j] = Math.random();}}}// 激活函数。
单片机及DSP课程设计报告专业:班级:姓名:学号:指导教师:时间:一、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。
通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
二、硬件电路方案设计1、4X4键盘设计4x4键盘工作原理:每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
2、数码管显示电路设计数码管显示原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
韶关学院计算机科学学院数据结构课程设计题目:四子棋学生姓名:刘晓锋学号:11115011038专业:计算机科学与技术班级:11级(1)班指导教师姓名及职称:陈正铭讲师起止时间:2013 年3 月——2013 年5 月1 需求分析1.1 课题背景及意义全球在使用的移动电话已经超过10亿部,而且这个数字每天都在不断增加。
手机在作为一种便携通信工具的同时,它的功能也在不断的丰富,进而推进手机游戏的发展。
根据《2012手机游戏用户行为分析报告》,随着智能手机的普及和手机性能的提高,手机上的终端应用越来越丰富,作为手机上的重要的娱乐应用,手机游戏市场也在快速成长,越来越多的用户通过手机游戏来打发无聊的时间,其中76%的用户单次玩手机游戏都在30分钟左右。
结合个人水平和兴趣爱好,本人将借本次课程设计机会设计一款休闲娱乐型的四子棋游戏,在娱乐自我,锻炼编程设计能力的同时,希望也借此给身边的朋友们带来快乐。
1.2 课题要求A. 支持android手机的四子棋游戏B. 设计一个7*6棋盘大小的四子棋双人对战游戏程序,先四子连线(横、纵、斜)者胜。
C. 选做内容:支持棋局录制与重放 -- 悔棋和新开功能,图形化操作界面1.3 软件格式规定A.程序所能达到的功能 :正确判断输赢并有相应的语音和文字提示B.测试的数据:1)、正确的输入:提示:蓝棋赢,并将蓝棋变为另外一种颜色 -- 天蓝和响起赢局的音乐2)、用户误输入:提示:亲,我的悔棋能力有限啊!1.4 设计目标A. 软件名称:Four In A Line(四子棋)B. 软件组成:FourInALine.apk(android系统应用程序)C. 制作平台及相关调试工具:Eclipse ; AndroidSDKD. 运行环境:android手机/winxp/win7(PC平台必须具有AndroidSDK)E. 性能特点:(1)软件由两个可执行文件组成,各具特点:FourInALine.apk为android系统应用程序,体积小,界面友好,使用方便。
井字棋实验报告篇一:井字棋实验报告课程:班别小组成员人工智能原理及其应用12商本学号及姓名指导老师实验02井字棋1、总体要求:1.1总体功能要求:利用不同的方法,实现人机对战过程中呈现出不同程度的智能特征:(1)利用极大极小算法、α-β剪枝来提高算法的效率。
(2)使用高级语言,编写一个智能井字棋游戏。
(3)结合极大极小算法的使用方法和α-β剪枝,让机器与人对弈时不但有智能的特征,而且计算的效率也比较高。
1.2.开发平台要求:开发者开发的软件必须能够在不同系统的电脑上正常运行,因此开发平台为:开发环境:JDK1.6开发工具和技术体系:为了此游戏能够很好的在不同系统中运行,因选择javaee进行开发,利用eclipse1.3项目管理要求:(1)项目程序编写过程中要适当的写一些注释,以便下次作业时能够快速的上手和以后的修改:(2)项目程序要保存在一个固定的工作区间;(3)确保代码不要太多冗余2、需求分析:2.1软件的用户需求:井字棋游戏的用户希望游戏除了有一般的功能之外,还可以通过极大极小算法、α-β剪枝等方法是的井字棋游戏能够拥有智能特征,并是的电脑在人机对弈的过程中因玩家的难度选择而体现不同程度的智能状况。
2.2软件的功能需求:本游戏需要实现功能有:(1)游戏的重新设置(2)游戏统计(如:人赢的次数、电脑赢的次数等)(3)游戏的退出(4)不同智能程度下(脑残、懵懂、正常、智能),人机对弈(5)既可以选择难度,也可以选择谁走第一步(人or电脑) 2.3软件的性能需求:井字棋游戏需要以图形界面的形式表现出来,通过点击图标就可以进入游戏;在游戏进行时,人机对弈时电脑能够快速的反应并根据人的上一步动作作出,通过选择“脑残、懵懂、正常、智能”难度选择,电脑以不同程度的智能与人进行游戏对弈。
2.4 运行环境:能够运行java程序的环境(装有jdk 或者jre)2.5 用户界面设计:用gridlayout进行用户界面的设计把界面中分为不同的模块。
交通学院计算15级C语言课程设计报告题目:四子棋游戏院(系、部) 信息科学与电气工程学院专业计算机科学与技术班级计算151学号 150811120姓名高伟指导教师克峰完成时间2016.3.3—2016.3.20成绩课程设计报告规课程设计任务书题目四子棋课程设计院 (部) 信息科学与电气工程学院专业计算机科学与技术班级 151学生高伟学号 1508111203 月 7 日至 3 月 20 日共 2 周指导教师(签字)负责人(签字)年月日目录1课程设计的任务及要求1.1设计任务1.2任务要求2程序设计思路2.1主程序及流程图2.2棋盘及棋子的绘制2.3判断胜负3程序测试3.1开始界面3.2输赢情况4程序中未能解决的问题5程序设计小结及心得摘要四子棋的程序中包含许多模块,其中有棋盘的绘制,棋子的绘制以及棋子坐标位置的计算,棋子胜负的算法等等,在主程序中需要将这些模块起来。
1. 课程设计的任务及要求1.1设计任务设计一个四子棋游戏程序,棋盘为12X11,先达到4子成一条线即结束游戏。
(该程序在DOS下运行)。
1.2任务要求(1)画出棋盘界面。
(2)定义键盘的功能,可以实现棋子左右移动及落子。
(3)棋子不能悬空,落子后不能再移动。
(4)人、人分别落子。
(5)用不同的颜色区分各方的棋子。
(6)撰写设计说明书及调试心得。
2.程序设计思路2.1主程序流程图程序主流程图:2.2绘制棋盘代码:void qipan(){int i,j;printf(" 退出请选择0! \n");printf(" ┏━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┓\n");printf(" ┃⑴┃⑵┃⑶┃⑷┃⑸┃⑹┃⑺┃⑻┃⑼┃⑽┃⑾┃⑿┃\n"); printf(" ┣━╋━╋━╋━╋━╋━╋━╋━╋━╋━╋━╋━┫\n");for(i=10;i>=0;i--){printf(" ┃");for(j=0;j<=11;j++){if(L[i][j]==0)printf(" ┃");if(L[i][j]==2)printf("●┃");if(L[i][j]==3)printf("○┃");}if(i>0)printf("\n ┣━╋━╋━╋━╋━╋━╋━╋━╋━╋━╋━╋━┫\n");if(i==0)printf("\n ┗━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┛\n"); }}2.3判断胜负胜负判断的算法:该算法的作用主要是判断玩家的落子后是否构成胜负关系,以及给出胜负的具体一方,该算法主要是通过一个二维数组来表示棋子的位置,通过计算某个棋子周围3个棋子的颜色来判断是否胜利。
“Java程序设计”综合实验报告一、前言1、项目背景通过五子棋这个课程设计。
可以让我们更加熟悉Java程序设计这门课程,加强对Eclipse这个软件的使用,加深对Java语言的掌握,提高编程水平。
同时培养能力,为将来的工作打下坚实的基础。
2、目标和意义目标:锻炼我们的能力,提高组中每一个人对Java语言的认识,培养编程兴趣。
让每一个人都能参与进来,提高团队合作意识。
意义:通过编写综合类的程序,运用已经学过的知识,和自主学习一些新的知识,提高了学习能力,掌握了一些自主学习的方法。
3、开发分工及进度安排二、功能分析1、主要模块本项目主要分为3个大的模块,分别为整体布局;界面绘制;与对战的算法。
由于游戏规则的设置,这里的游戏模式分为人机对战和人人对战。
黑白双方依次落子,由黑子先下,当任意一方在棋盘上形成横向,竖向,斜向连续五个相同颜色的棋子的一方获胜。
主要功能①实现在2种模式下五子棋的游戏。
②实现通过鼠标的点击位置放置棋子,达到下棋的目的。
③实现游戏玩家对游戏模式的自主选择。
④实现对在每种游戏模式下的黑子先手下棋的规定,先达到5子即为胜利。
三、关键功能的设计与实现1、数据结构与算法数据结构:项目中主要数据结构为二维数组。
用于存储棋盘上棋子的信息,和保存棋型表。
主要算法:(一)iswin()函数:用来判断输赢,通过鼠标事件所得到的点或者电脑下的点的坐标,来扫描该点八个方向的相邻的相同棋子数,上下,左右,斜左上下,斜右上下为四组,任意一组等于5即为胜利,由于本程序没有考虑禁手原则,只考虑了民间规则,所以大于5也为胜利。
public int iswin1(int x, int y, int heqi) {int k, s1, s2, s3, s4, s5, s6, s7, s8;s1 = 0;s2 = 0;s3 = 0;s4 = 0;s5 = 0;s6 = 0;s7 = 0;s8 = 0;if (heqi == 256)return -1;for (k = 1; k < 5; k++) {if (y + k < 16 && qipanqizi[x][y + k] == qipanqizi[x][y])s1++;elsebreak;}for (k = 1; k < 5; k++) {if (y - k > -1 && qipanqizi[x][y - k] == qipanqizi[x][y])s2++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y + k < 16&& qipanqizi[x + k][y + k] == qipanqizi[x][y]) s3++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y - k > -1&& qipanqizi[x - k][y - k] == qipanqizi[x][y]) s4++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && qipanqizi[x + k][y] ==qipanqizi[x][y])s5++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && qipanqizi[x - k][y] ==qipanqizi[x][y])s6++;elsebreak;}for (k = 1; k < 5; k++) {if (x - k > -1 && y + k < 16&& qipanqizi[x - k][y + k] == qipanqizi[x][y]) s7++;elsebreak;}for (k = 1; k < 5; k++) {if (x + k < 16 && y - k > -1&& qipanqizi[x + k][y - k] == qipanqizi[x][y]) s8++;elsebreak;}if (s1 + s2 >= 4 || s3 + s4 >= 4 || s5 + s6 >= 4 || s7 + s8 >= 4) {return 1;} elsereturn 0;}(二)人机对战通过对整个棋盘上每一个点的扫描,获得了电脑和玩家的棋型表,表中数据为该点的权值。
深圳大学实验报告
课程名称计算机系统1 项目名称简易版四子棋游戏设计
学院计算机与软件学院
专业
指导教师
报告人学号
实验时间 2017年5月8日
提交时间 2017年6月4日星期日
教务处制
一、实验目的与要求
(1)分析和理解试验指定的问题;
(2)掌握子函数的编写与使用;
(3)利用LC-3的汇编代码设计实现比较复杂程序。
二、实验内容与方法
实验内容:在LC-3中实现简易版四子棋的游戏,两位选手通过键盘和输出窗口轮流交互操作,棋盘由6 * 6的网格组成。
游戏规则如下:
两位选手依次轮流落子;
选手不能悔棋;
有子的地方不能继续落子;
直到有一方的四个棋子能够连成一条水平线、垂直线或者是对角线;
如果棋盘已满,无人获胜,则平局。
棋盘显示要求:
游戏最初时应该打印空的棋盘,可以用ASCII码"-"(即ASCII 码x002D)来表示该处为空,"O"(ASCII 码x004F)表示第一位选手的棋子,"X" (ASCII 码x0058)来表示第二位选手的棋子,为了让棋盘更易于观察,在各列间加一个空格,第6列之后不要添加。
初始棋盘如下:
选手一始终先下第一步棋,然后两者轮流落子,在每次落子之后,应该打印该选手的信息,提示他落子,以选手一为例,应该打印信息如下:
Player 1, choose a column:
为了明确选手的落子的位置,该选手应该输入数字1-6,然后回车,数字1-6指示在落子所在的列,从左到右,无需输入行号,程序应默认从行号6到行号1递减的顺序填入该棋子,若前后输入的列号相同,则行号减一。
例如,如果选手第一次在左起第二列落子,应该输入2,然后回车,则该棋子落在行6列2处,当后面输入的列号再次为2时,则将棋子落子行5列2处,以此类推,详情见后续示例输出。
程序应该确保选手输入的数字对应正确的列的范围,如果输入不合理,应该输出一条错误信息,提示该选手继续输入,例如,如果对于选手一:
Player 1, choose a column: D
Invalid move. Try again.
Player 1, choose a column: 7
Invalid move. Try again.
Player 1, choose a column:
程序应该一直提示该选手,知道输入正确的数字,当用户输入完成,程序应通过显示回馈给选手,然后通过换行符(ASCII 码 x000A)换行。
当选手输入成功后,程序应打印更新后的棋盘,并检查是否有人获胜,如果没人获胜,则轮到下一位输入。
当其中一位获胜或平局时,游戏结束,程序显示最后的棋盘情况并终止(Halt)。
例如,如果选手二有四子相连,应该输出:
Player 2 Wins.
如果平局,程序应该输出:
Tie Game.
实验分为4个步骤:
1)分解任务
2)模块细化
3)编写汇编代码
4)调试
三、实验步骤与过程
1)分解任务
分析题目要求,得到初步流程图,如下:
在本四子棋游戏中,最多填子36次,故设置循环变量,是填子、显示棋盘、判断循环36次,若中间有人赢了,就跳出循环。
虽然双方在输入前三颗子时必定不会谁输谁赢,但是为了流程简单,在下完每颗子后都判断一下是否有人已经赢了。
显然,显示棋盘,填子,判断这三个模块要多次用到,故应该写成子函数格式。
2)模块细化
为了简化实验,先按照上述流程编写一个C语言程序实现功能,然后对照C语言程序进行汇编程序的细化。
输出棋盘:该子函数十分简单,不需要从主函数中传递任何参数。
只需要在子函数中加载存放棋子的首地址,然后用两层循环输出。
用C语言表示如下,但用汇编不需要传参数,因为可以用LEA指令直接加载a的地址。
填子:在填子中,需要判断a[i][j]是否已经有棋子了,在C语言中a[i][j]可以直接表示,但在汇编中却需要大费周章。
于是再编写一个为子函数服务的子函数:返回a[i][j]的地址与值。
如果值表示为空(即还没填子),那就用ST指令向该地址填入某个选手的棋子。
判断:判断氛围四个判断:水平方向,竖直方向,对角线方向以及斜对角线方向。
以水平方向为例:将填子地址水平前移3位,如a[i][j]向前移得到a[i][j-3] 。
然后以a[i][j-3]为起点,判断水平四个棋子是否一致,一致则判断返回YES,从a[i][j-2]开始判断连续四个棋子是否相同,一直到从a[i][j]开始。
如果都没有,则进行另外的判断。
最后没有得到YES的话,就返回NO。
整个程序的函数如下:
3)编写汇编代码
就按照模块细化的要求逐条编辑指令,最后得到汇编程序。
汇编程序见附件。
4)调试
错误1:
经检查,是标号错误,一个用的是sum,一个用的是SUM,将他们都改成SUM就行了。
错误二:
本想输出棋盘,结果显示下面左图,相关代码在右边:
经修改后如下:
错误三:
如下图,发现R1和r1其实是一个东西,于是r1改名成rR1,编译通过。
错误5:输出换行之前没有将R0中的值保存,改正之后就好了。
错误6:偏移量超出指令范围。
对此,只能改变rR1到rR7的内存地址,使其偏移不超过指令要求的偏移范围。
在编写程序时,除了以上错误外,还有其他错误,经过一一改正后,最终得到正确程序。
四、实验结论或体会
程序应调试完成后,需经过多次测试,分别检验水平线、垂直线、对角线、斜对角线、平局,以及各种意外情况。
测试一:测试水平线
测试序列数:1,1,2,2,3,3,4.
符合实验预期。
测试二:测试垂直线
测试序列数: 1,2,1,2,1,2,1.
符合实验预期。
测试三:测试对角线
测试序列数:1,1,1,1,2,6,2,2,3,3,6,4
符合实验预期。
测试四:测试斜对角线
测试序列数:1,2,2,3,3,1,4,4,3,4,4.
符合实验预期。
测试五:平局
测试序列数:1,2,2,3,3,1,4,4,3,4,4.
符合实验预期。
测试六:错误输入
1)当输入的不是1—6的字符时,
2)当一列已经填子填满时
经过上面的各种测试,所编写程序都与预期功能一致,故本程序满足实验要求。
实验体会
1)编写的四子棋程序用C语言都有一点难,何况是用汇编语言呢。
在编写本程序时,我断断续续地编写了近三周才完工,除了说明我比较懒之外,也说明程序比较难。
2)本程序我共编写了四百多行(算上各个输出语句所占内存,实际指令两百左右吧),本来是准备按标准模式来写(即先后顺序:主函数-> 子函数-> 数据区),但是这样写有些指令加载地址时发现偏移量已经超限,没办法,只有将数据放在离该指令比较近的地方,于是就造成了数据区被分成了许多块。
3)写汇编是会用到很多跳转,感觉跳转和C语言中的goto语句非常相似。
程序一旦比较大,标签名就容易取重,为了避免这一点,我取得标签名就比较怪,可能过了一段时间自己都不知道是怎么取的了。
在以后写程序,要注意标签名的选取。
4)汇编语言相比高级语言来讲,更加接近于底层,因此细节考虑得更多,写的程序也更加繁杂,然后就造成了这么一个情况:我写的程序,过一段时间后,让我读这个程序,虽然是我自己写的,但仍然需要大量时间来理清思路。
5)总之一句话,多写。
当初开学时,我可不认为我能写出本次试验的程序,感觉太难了。
但是随着程序越写越多,从简单到复杂,虽然还是比较难,但自己已能克服了。
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。