FIT1047代做、Python/c++程序语言代写
FACULTY OF
INFORMATION
TECHNOLOGY
FIT1047 Introduction to computer systems, networks and
security - S1 2024
Assignment 2 – Processes and MARIE Programming
Purpose Processes and programs are what makes computers do what we want them to do.
In the first part of this assignment, students will investigate the processes running
on their computers. The second part is about programming in MARIE assembly
language. This will allow students to demonstrate their comprehension of the
fundamental way a processor works.
The assignment relates to Unit Learning Outcomes 2, 3 and 4.
Your task Part 1: Write a short report describing the processes running on your computer.
Part 2: Disassemble and add comments to a MARIE program.
Part 3: Submit your reflections.
Part 4: Write a MARIE program that can display bitmap numbers.
Part 5: In-class In-person Interview (week 8 applied session)
Value 25% of your total marks for the unit
The assignment is marked out of 60 marks.
Word Limit See individual instructions
Due Date Part 1-4: 9:30 am Monday 15 April 2024
Part 5: Interview conducted during Week 8 your official allocated Applied
Session
Submission Overall, 3 files are required via Moodle Assignment Submission:
● Part 1: one pdf file (containing answers to the questions)
● Part 3: one pdf file (containing reflection from Week 5 and 6)
● Part 2 and 4: one .zip file, containing one .mas file for Part 2 and one .mas
file for Part 4
Turnitin and MOSS will be used for similarity checking of all submissions.
This is an individual assignment (group work is not permitted).
In this assessment, you must not use generative artificial intelligence (AI)
to generate any materials or content in relation to the assessment task.
You will need to explain and extend your code in an interview. (Part 5)
Assessment
Criteria
Part 1 is assessed based on correctness and completeness of the descriptions.
Part 2 is assessed based on correctness of the code and the labels/comments.
Part 3 is assessed based on relevance of the submission to the unit.
Part 4 is assessed based on correctness of the code, as well as the
documentation/comments.
FACULTY OF
INFORMATION
TECHNOLOGY
Part 5 is assessed based on the understanding of the code you have written.
See instructions for details.
Late Penalties 10% deduction per calendar day or part thereof for up to one week
Submissions more than 7 calendar days after the due date will receive a
mark of zero (0) and no assessment feedback will be provided.
Support
Resources
See Moodle Assessment page
Feedback Feedback will be provided on student work via:
general cohort performance
specific student feedback ten working days post submission
INSTRUCTIONS
This assignment has five parts. Make sure you read the instructions carefully.
Part 1 and 2 are required to achieve a Pass or higher mark for the assignment.
Part 3 is a reflection activity. You do not receive marks for this task, but it is a hurdle requirement (i.e.,
you will not get a mark for this assignment if you don’t submit it).
Part 4 and 5 are MARIE programming tasks, which you need to complete in order to get an overall mark
of 60 or higher in this assignment.
Failure to attend the interview (Part 5) will result in 0 points for the entire Part 4 and 5,
regardless of your submission in Moodle.
How are marks and grades determined?
Grade level Requirements exact mark
Pass ● submission includes responses
addressing reflective questions
● achieves between 60% and 79%
in part 1 and 2
between 50 and 59
depending on your score in
parts 1 and 2
Credit ● submission includes responses
addressing reflective questions
● achieves between 80% and 100%
in parts 1 and 2
● achieves between 10% and 49%
in parts 4 and 5
between 60 and 69
depending on exact scores
in all parts
Distinction ● meets requirements for Credit
● achieves between 50% and 79%
in part 4 and 5
between 70 and 79
depending on exact score in
part 4 and 5
High Distinction ● meets requirements for Credit
● achieves between 80% and 100%
in part 4 and 5
between 80 and 100
depending on exact score in
part 4 and 5
FACULTY OF
INFORMATION
TECHNOLOGY
Part 1: Processes (10 marks)
For this task, write a brief report about processes that you observe running on your
computer. You can use one of the following tools (depending on your operating system):
On Windows, use the Task Manager
On macOS, use the Activity Monitor
On Linux, use a command line tool like htop, top, or the ps command
Answer the following questions:
1. Briefly describe the columns displayed by the tool you use that relate to a) memory
usage and b) CPU usage of a process. What can you say about the overall memory
usage of all processes, compared to the RAM installed in your computer? Include
graphs or charts for the comparison. (5 marks)
2. Pick a process you perhaps don’t know much about, or which you did not expect to
find running on your computer. Try to find out and describe briefly what it does.
(5 marks)
Include a screenshot of your processes in the report along with CPU/memory usage graphs
and/or charts. The screenshot should show between 5 and 10 processes.
The word limit for this part (both questions together) is 500 words (about 1 page, not
including images and tables).
Submit your report for this part (Part 1) as a PDF file (independent of the other parts)
in Moodle.
FACULTY OF
INFORMATION
TECHNOLOGY
Part 2: MARIE Disassembly (20 marks)
Follow the link on Moodle to access your personalised MARIE memory screenshot for this
task.
Important: Your memory screenshot is different from the one other students are
working on. Only download the file while you are correctly logged into Moodle with
your own student account.
Task 2.1: Disassemble the memory (10 marks)
Based on the memory contents, recreate the MARIE program that corresponds to your
personalised memory screenshot. This is called “disassembling” the machine code, since it
is the opposite operation of “assembling” the MARIE code into the binary memory contents.
For each memory cell, decode the instruction and (if applicable) the address that the
memory cell is encoding. You can make the following assumptions:
- There is exactly one Halt instruction in the code
- Every memory location after the Halt instruction contains data
- Any memory location that contains the value 0 is data (even before the Halt
instruction)
Here is an example of a memory screenshot and the corresponding decoded MARIE
program:
Disassembled program:
Input
Add 005
Output
Jump 000
Halt
DEC 10
Note: You need to decode the actual instructions. E.g. for the first memory location, HEX 5000
would not be a valid answer. The contents of all memory that follows the Halt instruction is
considered to be data. Therefore, DEC 10 is the correct decoding of location 5 (instead of JnS
00A), and HEX 00A would also be correct. You don’t need to list all the locations containing
zeros starting from address 006 (these will be filled with zeros by the assembler anyway).
Tip: You can verify that your disassembled code is correct by entering it into the MARIE
simulator, assembling it and comparing the memory contents to the screenshot you started
from.
Task 2.2: Add labels (5 marks)
Now update the program you decoded in Task 2.1. Removing all hard-coded memory
addresses by adding labels to replace all memory locations that are used as addresses in
FACULTY OF
INFORMATION
TECHNOLOGY
the program instructions. Labels should have meaningful names in the context of what the
program does (i.e., not just A, B, C).
For the example above, this could result in the following program:
MainLoop, Input
Add Ten
Output
Jump MainLoop
Halt
Ten, DEC 10
Task 2.3: Add comments (5 marks)
Comment the code based on your understanding of what it does. Comments should
describe the function of the different parts. E.g., if you identify a subroutine in the code, add
a comment at the start of the subroutine that describes what it does, and whether it takes
any arguments.
For this part (Part 2), you need to submit one .mas file containing your final code. Do
not submit one .mas file per each subtask! Your .mas file must be added to a .zip
archive, together with the (separate) .mas file for Part 4.
Part 3: Reflections (hurdle requirement, no marks)
Copy/paste your reflections for weeks 5 and 6 from the Ed Lessons into a PDF document.
This part is a hurdle requirement, i.e., we won’t mark the other parts if you do not submit this
part. The reflections can be just a few sentences per week, but need to genuinely relate to
your learnings for the week.
Submit your reflection for this part (Part 3) as a PDF file (independent of the other
parts) in Moodle.
FACULTY OF
INFORMATION
TECHNOLOGY
Part 4: MARIE Programming (22 marks)
In this task you will develop a MARIE application that draws numbers on the screen. We will
break it down into steps for you.
Note: This part is for students who want to achieve a Distinction or High Distinction mark in
this assignment. In order to receive any marks for this part, you must reach at least a Credit
grade for Parts 1, 2 and 3.
Each task requires you to write code and documentation. On Moodle, you will find a
template for the code. Your submission must be based on this template, i.e., you must
add implementations of your own subroutines into the template. The template already
contains the main program that calls the subroutines.
Your code must contain readable comments and meaningful labels for your tutor /
marker to understand the logic flow of your program (e.g. the purpose of a subroutine, jump
/ skipcond statement etc.).
In-class interview (Part 5): You will be required to join an interview to demonstrate your
code to your tutor during your applied session in week 8 (after the submission deadline).
Failure to demonstrate will lead to zero marks being awarded for the entire Part 4,
regardless of your submission in Moodle. In addition, during the interview (Part 5), you
will also need to answer further questions about your submitted code (see below for details).
Code similarity: We use tools such as MOSS and Turnitin to check for collaboration and
copying between students. If you copy parts of your code from other students, or you let
them copy parts of your code, this will result in a report to the Academic Integrity team. As a
result, you may receive a penalty such as 0 marks for the entire assignment, 0 marks
for the whole unit, or in severe cases (such as contract cheating), suspension or
expulsion from Monash University.
Rubric: The marking rubric on Moodle provides details for the marking. A correctly working
MARIE program that covers all tasks and is well documented will receive full marks.
Missing/incomplete documentation will result in a loss of up to ¼ of the task’s marks.
Introduction: Bit-mapped displays
So far, the only output capability we have seen in the MARIE system is using the Output
instruction, which will print a single 16-bit value. Many computers of course are capable of
displaying arbitrary graphics, often in high resolution and great colour depth.
In the lectures on input/output systems, we have seen that one way to implement this is to
map a certain location of the memory to an output device. I.e., writing to that memory
location (using e.g. a Store instruction) causes the output to happen.
In the simplest form of graphics hardware, we can dedicate part of the RAM to be graphics
memory. Each memory cell corresponds to a pixel on screen, and the value in the memory
cell encodes the colour of the pixel. That way, we can create arbitrary graphics by simply
FACULTY OF
INFORMATION
TECHNOLOGY
writing values into the memory.
The MARIE simulator has a feature called Display, which you access from the list of tabs
that also shows the output log, RTL log etc:
The display shows the memory from address F00 to address FFF as a 16x16 pixel screen.
The value in the memory locations represents the colour of the pixels. We will only use the
colours black, represented as 0, and white, represented as FFFF. When you start the MARIE
simulator and assemble your code, the memory starting from location F00 is (usually) filled
with zeroes, which means that the display is black. Let’s now change the contents of the
memory using some Store instructions:
Load White
Store 0F80
Store 0F81
Store 0F82
Store 0F83
Halt
White, HEX FFFF
After running this program, the display will look like this:
You can see that the first four pixels in the 9th row have now turned white.
FACULTY OF
INFORMATION
TECHNOLOGY
Task 4.1 Clearing the display (4 points)
Write a subroutine SubClearDisplay that turns all pixels in the graphics memory white.
Remember that the graphics memory ranges from address 0F00 to address 0FFF, and that
white pixels are represented by the value FFFF. Document your subroutine with comments.
Task 4.2 Painting a number (10 points)
The template for this task contains data for bitmaps of the digits 0-9, stored at the label Font.
Each digit consists of 3x5 pixels of data. The first 3 words are the first row of pixels, the next
3 words are the second row, and so on. For example, the digit 2 is represented as
0 0 FFFF
FFFF FFFF 0
FFFF 0 FFFF
0 FFFF FFFF
0 0 0
You can see the pattern here, the zeros “paint” the shape of the character 2 in black, with the
background in white (FFFF).
Your task is to write a subroutine called SubPaintDigit that paints a digit into the graphics
memory. The start of the subroutine needs to look like this:
PaintDigitCharacter, HEX 0
PaintDigitDisplay, HEX 0
SubPaintDigit, HEX 0
In the PaintDigitCharacter argument, we pass the address of the first pixel data in the font for
the digit we want to paint. In the PaintDigitDisplay argument, we pass the address of the
top-left corner where we want to start painting in the graphics memory. For example, to paint
the digit 0, starting from the second pixel in the second row, we could use the following code:
Load FontAddr
Store PaintDigitCharacter
Load Display22
Store PaintDigitDisplay
JnS SubPaintDigit
Halt
Display22, HEX 0F11
Note that the address 0F11 (label Display22) lies exactly 17 words after the start of the
graphics memory. This means we’re skipping the first row (16 words) and the first pixel in the
second row (1 word).
Here we simply use FontAddr to refer to the first character (for the digit 0). For the other
characters, we would have to add a corresponding offset into the font memory.
FACULTY OF
INFORMATION
TECHNOLOGY
In order to paint a digit in your subroutine, you can follow this “recipe”:
- Your subroutine should contain two nested loops.
- Each digit contains 15 pixels, so you need to loop through those 15 pixels, load each
one from the font definition and store it into the graphics memory. This is the outer
loop of your subroutine.
- After each set of 3 pixels, you need to start in the next row of the graphics display.
This means that if you were currently writing into graphics memory at address X, you
now need to continue writing at address X plus the width of the display minus the
width of a character. This is the inner loop of your subroutine.
- Once you have “copied” all 15 pixels from the font definition into the graphics
memory, you can exit the subroutine.
Your subroutine needs to contain sufficient comments to enable someone else (like the
person marking your assignment) to understand the purpose of each line of your code.
Task 4.3 Counting down (8 points)
Your final task is to implement a subroutine SubCountDown that clears the screen and then
counts down from 9 to 0, drawing those digits on the bit-mapped display using the
subroutines developed in the previous tasks.
In order to get full marks, your code needs to use a loop that decrements a counter and calls
SubPaintDigit based on the value of the counter, rather than a sequence of instructions that
calls SubPaintDigit with each digit’s address. Use additional subroutines to structure your
code nicely.
You will notice that it would be nice for the countdown to wait for a fraction of a second
between digits. Think of a way you can achieve this, so that the countdown takes (more or
less) exactly 10 seconds on your computer to execute. Document how you achieved this in
the code comments.
For this part (Part 4), you need to submit one .mas file, based on the template,
containing the code for all subroutines. Do not submit one .mas file per each subtask!
Your .mas file must be added to the .zip archive that also contains your (separate)
.mas file for Part 2.
Part 5: In-class interview (8 points)
You need to demonstrate the code you submitted for Task 4.1–4.3 to your tutor in an in-class
in-person interview (to be conducted during your official allocated Applied session in
Week 8) after the submission deadline. Failure to explain how your code works will result in
0 points for the individual tasks that you cannot demonstrate.
In addition, you will be asked to modify the code you submitted in certain ways and explain
how the MARIE concepts work that you were required to use for the individual tasks. These
additional questions add up to 8 points for this task (Task 4.4).
Failure to attend the interview will result in 0 points for the entire Part 4 and 5,
regardless of your submission in Moodle.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
- 全球首个微流控专利检索平台-微芯知库正式发布!专访创始人叶嘉明博士
- 美国监管给经重新设计的苹果新款手表进口开绿灯,但苹果的代价巨大
- Ins高效筛选助手,Instagram群发代发工具,让你的营销更高效!
- Telegram定位坐标采集营销软件,TG全球坐标定位采集软件,电报群组坐标采集利器
- 担忧市场覆盖不足 WhatsApp拉群营销工具助你一键解决烦恼 扩大曝光面
- ins/ig精准采集软件,instagram最新群发引流软件推荐
- TT语音公司六次上榜中国互联网综合实力百强企业
- Ins引流助手大揭秘,Instagram群发工具助你轻松拉群!
- 专业人士请教 WhatsApp拉群营销工具的使用经验 有人愿意分享吗
- 年度新品:Fit.Q有机生酮咖啡,高效燃脂健康瘦!
- 热辣滚烫!2024低代码6大趋势
- 推广轻松,品牌更生动!商家 ins群发软件协议号,为您的营销保驾护航
- Instagram引流营销软件揭秘,Ins超级营销利器问世!
- WhatsApp协议号推广工具箱:让您的网络项目更受瞩目!
- 星际商海的新星探:2024年是否有跨境电商 Telegram 群发云控冒险者成为星际商海的新星探,勘探新商机
- 南京威雅夏令营重磅来袭!2024年夏日限定款,你要pick哪个营?
- instagram精准引流黑科技,一分钟引爆您的ins账号
- “智算融合 共创未来”——开普云AI战略暨新产品发布会召开
- WhatsApp营销软件/ws群发/ws协议号/ws筛选/ws接粉
- 法律GPT技术进一步提升律师工作效率,AlphaGPT赋能合同审查
- 刷爆朋友圈,AlphaGPT在法律ai圈子火了,案件仅需3分钟搞定
- 北京爱尔英智眼科医院张丽提醒:得了麦粒肿不用怕,用对方法能缓解
- 外贸探险家:WhatsApp拉群工具,我这个小白的外贸探险之旅
- Ins爆粉机器人,Instagram引流营销软件全球震撼推荐!
- ins批量群发秘籍!Instagram 2024最新群发软件推荐,Ins引流轻松搞定!
- 外贸踏实记 我用WhatsApp拉群营销工具 业务实现了突破性增长
- 世贸通美国移民:又一批EB5投资人I-829获批,永久绿卡无忧!
- 群思亮相2024 CHINC,分享智慧医疗新发展与实践应用!
- 电报群发高效率软件,Telegram营销拉群工具,TG全自动群发
- 专家之选 WhatsApp拉群工具如何在业务中引领海外营销的感官变革
推荐
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬 瘫痪十四年后,老杨第一次再度抓握住一瓶水,他 科技
- 升级的脉脉,正在以招聘业务铺开商业化版图 长久以来,求职信息流不对称、单向的信息传递 科技
- 如何经营一家好企业,需要具备什么要素特点 我们大多数人刚开始创办一家企业都遇到经营 科技
- 疫情期间 这个品牌实现了疯狂扩张 记得第一次喝瑞幸,还是2017年底去北京出差的 科技
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目 尽管电动车在全球范围内持续崛起,但丰田章男 科技
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人 1 月 15 日消息,据界面新闻,B站上周发布内部 科技
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术 为期三天的第五届中国(昆明)南亚社会公共安 科技
- 全力打造中国“创业之都”名片,第十届中国创业者大会将在郑州召开 北京创业科创科技中心主办的第十届中国创业 科技
- 苹果罕见大降价,华为的压力给到了? 1、苹果官网罕见大降价冲上热搜。原因是苹 科技
- 创意驱动增长,Adobe护城河够深吗? Adobe通过其Creative Cloud订阅捆绑包具有 科技