FIT1047计算机系统、网络和安全-S1 2024课业2——流程和MARIE编程
目的过程和程序使计算机做我们希望它们做的事情。在本课业的第一部分,学生将调查运行的过程在他们的电脑上。第二部分是关于MARIE汇编中的编程语言这将使学生能够展示他们对处理器工作的基本方式。本课业涉及单元学习成果2、3和4。你的任务第1部分:写一份简短的报告,描述计算机上运行的进程。第2部分:对MARIE程序进行分解并添加注释。第三部分:提交你的思考。第4部分:编写一个可以显示位图数字的MARIE程序。第5部分:课堂面授面试(第8周申请课程)价值为该单元总分的25%
这项课业共打了60分。字数限制请参阅个别说明到期日第1-4部分:2024年4月15日星期一上午9:30第5部分:面试在第8周进行,你的官方分配申请一场提交总体而言,通过Moodle课业提交需要3个文件:● 第1部分:一个pdf文件(包含问题的答案)
● 第3部分:一个pdf文件(包含第5周和第6周的反思)● 第2部分和第4部分:一个.zip文件,其中包含一个用于第2部分的.mas文件和一个.mas文件第4部分的文件
Turnitin和MOSS将用于所有提交文件的相似性检查。这是一项个人课业(不允许集体课业)。在本评估中,您不得使用生成人工智能(AI)生成与评估任务相关的任何材料或内容。你需要在面试中解释和扩展你的代码。(第5部分)看法标准第1部分是根据描述的正确性和完整性进行评估的。
第2部分根据代码和标签/注释的正确性进行评估。
第3部分是根据提交材料与单位的相关性进行评估的。
第4部分是根据代码的正确性以及
文件/评论。的教员信息技术第5部分是基于对您编写的代码的理解进行评估的。有关详细信息,请参阅说明。逾期罚款每日历天或不足一周扣减10%截止日期后超过7个日历日的提交将收到标记为零(0),并且将不提供评估反馈。支持资源请参阅Moodle评估页面反馈将通过以下方式提供对学生课业的反馈:一般队列表现提交后10个工作日的具体学生反馈
说明书本课业分为五个部分。请务必仔细阅读说明书。第1部分和第2部分需要达到及格或更高的分数。第三部分是反思活动。您没有收到此任务的分数,但这是一个障碍要求(即。,如果你不提交课业,你将得不到分数)。第4部分和第5部分是MARIE编程任务,您需要完成这些任务才能获得总体分数60或更高。未能参加面试(第5部分)将导致整个第4部分和第5部分得0分,不管你在Moodle中提交了什么。分数和等级是如何确定的?等级要求准确标记通过● 提交内容包括回复解决反思性问题
● 达到60%至79%在第1部分和第2部分介于50和59之间取决于你在中的得分第1部分和第2部分信用● 提交内容包括回复解决反思性问题
● 达到80%到100%在第1部分和第2部分中
● 达到10%至49%在第4部分和第5部分中60至69岁取决于准确的分数在所有部分差别● 符合信贷要求
● 达到50%至79%在第4部分和第5部分在70到79之间取决于中的确切分数第4部分和第5部分高知名度● 符合信贷要求
● 达到80%到100%在第4部分和第5部分
在80到100之间取决于中的确切分数第4部分和第5部分的教员信息技术第1部分:流程(10分)
对于此任务,编写一份关于您在
计算机您可以使用以下工具之一(取决于您的操作系统):在Windows上,使用任务管理器在macOS上,使用活动监视器
在Linux上,使用命令行工具,如htop、top或ps命令回答以下问题:
1.简要描述您使用的工具显示的与a)内存相关的列
以及b)进程的CPU使用。关于整体记忆,你能说些什么与计算机中安装的RAM相比,所有进程的使用情况如何?包括用于比较的图形或图表。(5分)
2.选择一个你可能不太了解的过程,或者你没想到的过程在您的计算机代 写FIT1047计算机系统、网络和安上找到正在运行的。试着找出并简要描述它的作用。(5分)在报告中包括进程的屏幕截图以及CPU/内存使用情况图和/或图表。屏幕截图应显示5到10个过程。这部分(两个问题加在一起)的字数限制是500字(大约1页,不是包括图像和表格)。
以PDF文件的形式提交本部分(第1部分)的报告(独立于其他部分)在Moodle。的教员
信息技术第2部分:MARIE拆卸(20分)
按照Moodle上的链接访问您的个性化MARIE内存截图任务重要提示:你的记忆截图与其他学生的不同正在进行。只有在您正确登录Moodle时才能下载该文件您自己的学生帐户。
任务2.1:拆卸存储器(10个标记)根据内存内容,重新创建与您的个性化内存屏幕截图。这被称为“反汇编”机器代码,因为它是将MARIE代码“组装”到二进制内存内容中的相反操作。对于每个存储单元,解码指令和(如果适用)
存储单元正在编码。您可以做出以下假设:-代码中只有一条Halt指令
-Halt指令之后的每个内存位置都包含数据-任何包含值0的内存位置都是数据(甚至在Halt之前指示
以下是内存屏幕截图和相应解码的MARIE的示例
程序
分解程序:
输入
添加005
输出
跳跃000停止
12月10日注意:您需要解码实际指令。例如,对于第一个存储位置,HEX 5000这不是一个有效的答案。Halt指令之后的所有内存的内容为被认为是数据。因此,DEC 10是位置5的正确解码(而不是JnS00A)和HEX 00A也将是正确的。您不需要列出包含的所有位置从地址006开始的零(无论如何,汇编程序都会用零填充这些零)。提示:您可以通过将反汇编的代码输入MARIE来验证其是否正确模拟器,组装它并将内存内容与您启动的屏幕截图进行比较从…起
任务2.2:添加标签(5个标记)
现在更新您在任务2.1中解码的程序。卸下所有硬编码存储器地址,方法是添加标签以替换中用作地址的所有内存位置的教员
信息
技术
程序指令。标签应该在什么的上下文中具有有意义的名称程序会这样做(即,不仅仅是A、B、C)。
对于上面的示例,这可能导致以下程序:
主回路,输入
加十
输出
跳转主循环
停止
10日,12月10日
任务2.3:添加评论(5分)根据您对代码作用的理解对代码进行注释。评论应述不同部件的功能。例如,如果您在代码中标识了一个子例程,请添加子程序开始处的注释,描述它所做的操作以及是否需要任何论点。对于这部分(第2部分),您需要提交一个.mas文件,其中包含您的最终代码。做每个子任务不能提交一个.mas文件!必须将.mas文件添加到.zip文件中归档,以及第4部分的(单独的).mas文件。第3部分:反思(跨栏要求,无分数)将你在第5周和第6周的教育课程中的反思复制/粘贴到PDF文档中。这部分是一个障碍要求,即如果您不提交,我们不会标记其他部分部分反思可以是每周几句话,但需要真正与你本周的学习。将您对本部分(第3部分)的反思提交为PDF文件(独立于其他文件零件)。的教员信息
技术第4部分:MARIE编程(22分)在这项任务中,您将开发一个在屏幕上绘制数字的MARIE应用程序。我们将为你把它分解成几个步骤。
注:此部分适用于希望在中取得优异成绩或高分的学生这项任务。为了获得该部分的任何分数,您必须至少达到信用第1、2和3部分的等级。每项任务都需要编写代码和文档。在Moodle上,你会发现代码的模板。您的提交必须基于此模板,即您必须将您自己的子例程的实现添加到模板中。模板已经存在包含调用子例程的主程序。您的代码必须包含可读的注释和对导师有意义的标签/
标记来理解程序的逻辑流(例如子程序的目的,跳转
/skipcond语句等)。课堂面试(第5部分):你将被要求参加面试,以展示你的在第8周(提交截止日期后)的申请课程中,向您的导师发送代码。未能演示将导致整个第4部分得零分,不管你在Moodle中提交了什么。此外,在面试(第5部分)中编写一个子例程SubClearDisplay,将图形内存中的所有像素变为白色。请记住,图形内存的范围从地0F00到地址0FFF,并且白色像素由值FFFF表示。用注释记录您的子程序。
任务4.2画一个数字(10分)此任务的模板包含0-9位位图的数据,这些数据存储在标签Font中。每个数字由3x5个像素的数据组成。前3个字是第一行像素,下一行是3个单词是第二行,依此类推。例如,数字2表示为
0 0 FFFF
ffffffffff 0
FFFF 0 FFFF
0 ffffffff
0 0 0
你可以在这里看到图案,零将字符2的形状“画”成黑色背景为白色(FFFF)。
您的任务是编写一个名为SubPaintDigit的子程序,将数字绘制到图形中记忆力子程序的开始需要如下所示:
PaintDigitCharacter,HEX 0PaintDigitDisplay,HEX 0
SubPaintDigit,HEX 0在PaintDigitCharacter参数中,我们将字体中第一个像素数据的地址传递给我们要绘制的数字。在PaintDigitDisplay参数中,我们传递左上角是我们想要在图形内存中开始绘制的位置。例如,要绘制数字0,从第二行的第二个像素开始,我们可以使用以下代码:加载FontAddr存储PaintDigitCharacter加载显示22
Store PaintDigitDisplay
JnS SubPaintDigit停止
显示器22,HEX 0F11
注意,地址0F11(标签Display22)正好位于图形存储器。这意味着我们将跳过中的第一行(16个字)和第一个像素第二行(1个字)。
在这里,我们简单地使用FontAddr来引用第一个字符(用于数字0)。对于另一个字符,则必须在字体内存中添加相应的偏移量。的教信息
技术为了在子程序中绘制一个数字,您可以按照以下“配方”进行操作:-您的子例程应该包含两个嵌套循环。-每个数字包含15个像素,因此需要循环遍历这15个像素并加载每个像素从字体定义中选择一个,并将其存储到图形存储器中。这是外层子程序的循环。-在每组3个像素之后,您需要从图形显示的下一行开始。这意味着,如果您当前正在写入地址X的图形内存
现在需要在地址X加上显示器宽度减去字符的宽度。这是子程序的内部循环。
-一旦您将字体定义中的所有15个像素“复制”到图形中内存,您可以退出子程序。您的子例程需要包含足够的注释以启用其他人(如
标记您的课业的人)来理解代码的每一行的目的。
任务4.3倒计时(8分)您的最后一项任务是实现一个子例程SubCountDown,该子例程清除屏幕,然后从9倒计时到0,使用
在前面的任务中开发的子程序。为了获得满分,您的代码需要使用一个循环来递减计数器并调用SubPaintDigit基于计数器的值,而不是一系列指令使用每个数字的地址调用SubPaintDigit。使用其他子例程来构建代码很好。你会注意到倒计时等待几分之一秒会很好
数字之间。想办法实现这一点,这样倒计时就需要(更多或更少)精确10秒在您的计算机上执行。记录您是如何在中实现这一目标的代码注释。对于这一部分(第4部分),您需要提交一个基于模板的.mas文件,包含所有子例程的代码。不要为每个子任务提交一个.mas文件!您的.mas文件必须添加到.zip档案中,该档案还包含您的(单独的)用于第2部分的.mas文件。
第五部分:课堂面试(8分)您需要在课堂上向导师演示您为任务4.1–4.3提交的代码面对面面试(将在您的正式分配的申请课程中进行提交截止日期后的第8周)。未能解释代码的工作原理将导致无法演示的单个任务得0分。此外,您将被要求以某些方式修改您提交的代码,并解释MARIE概念是如何工作的,您被要求用于单独的任务。这些此任务(任务4.4)的额外问题加起来可得8分。
未能参加面试将导致整个第4部分和第5部分得0分,不管你在Moodle中提交了什么。
WX:codinghelp


hwxy94ty
1 声望0 粉丝