首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
讲解FIT1047程序、辅导Java,CS编程语言 讲解SPSS|解析Java程序
项目预算:
开发周期:
发布时间:
要求地区:
FIT1047 - Introduction to Computer Systems,
Networks and Security
Assignment-1 Semester 1, 2021
Submission guidelines
This is an individual assignment, group work is not permitted.
Deadline: Assignment 1 due by week-6, Friday 4:00 PM.
Submission format: PDF for the written tasks, LogiSim circuit files for task 1, MARIE assembly files
for task 2. All files must be uploaded electronically via Moodle. More details at the end of the
assignment specifications.
Individualised exercises: Some exercises require you to pick one of several options based on your
student ID.
Late submission:
● By submitting a Special Consideration Form with supporting documentation.
● Or, without special consideration, you lose 5% of your mark per day that you submit late (including
weekends). Submissions will not be accepted more than 5 days late.
This means that if you got x marks, only 0.95n × x will be counted where n is the number of days you
submit late.
Marks: This assignment will be marked out of 100 points, and count for 20% of your total unit marks.
Plagiarism: It is an academic requirement that the work you submit be original. Zero marks will be
awarded for the whole assignment if there is any evidence of copying (including from online sources
without proper attribution), collaboration and pasting from websites or textbooks.
Further Note: When you are asked to use internet resources to answer a question, this does not mean
copy-pasting text from websites. Write answers in your own words such that your understanding of the
answer is evident. Acknowledge any sources by citing them. Your work will be submitted and compared
with previous students' works and also on the internet for plagiarism using Turnitin software. So please
make sure the submission is your work.
1. Boolean Algebra and Logisim Task (50 Marks)
The following truth table describes a Boolean function with four input values X1, X2, X3, X4 and two
output values Z1, Z2.
X1 X2 X3 X4 Z1 Z2
0 0 0 0 1 0
0 0 0 1 1 1
0 0 1 0 0 1
0 0 1 1 1 1
0 1 0 0 1 1
0 1 0 1 0 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 0 1
1 0 0 1 1 1
1 0 1 0 1 0
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 1 0 0
The main result of this task will be a logical circuit correctly implementing this Boolean function in the
Logisim simulator. Each step as defined in the following sub-tasks needs to be documented and explained.
1.1 Boolean Algebra Expressions (10 points)
Write the Boolean functions as Boolean algebra terms, using either the Product of Sums (POS) or Sum
of Products (SOP) method. Notice that the truth table consists of four inputs and two outputs. Hence you
must have two separate Boolean functions representing two outputs to the same input set.
Briefly explain the steps you followed to formulate the two Boolean functions from the given truth table.
Please use standard notation for writing Boolean algebra expressions. Boolean “AND” is written without
a symbol, e.g. X1X2. Boolean OR is written with the ‘+’ symbol, e.g. “X1 + X2”. Boolean negation is
written using an over-line, e.g. 𝑋𝑋1 . When writing terms like “NOT X1 AND NOT X2”, there must be a
clear gap in the over-lines, e.g. 𝑋𝑋1 𝑋𝑋2 . Hint: Note that 𝑋𝑋1 𝑋𝑋2 𝑋𝑋3 𝑋𝑋4 is not equal to “ 𝑋𝑋1. 𝑋𝑋2. 𝑋𝑋3.𝑋𝑋4”.
1.2 Logical circuit in Logisim (20 points)
Model the resulting Boolean terms from section 1.1 in a single logic circuit in Logisim, using only the
basic gates AND, OR, NOT. You can use logic gates with more than two inputs. The logic circuit should
show all the four inputs, and both the outputs Z1 & Z2 with appropriate labels. The two outputs should
not be split up into two different Logisim circuits.
● Briefly explain your construction (same as for section 1.1, a short explanation is enough).
● Test your circuit using input values from the truth table and document at least three test cases
(you may take “Print Screen” of your Logisim logic circuit showing appropriate inputs and
corresponding outputs).
1.3 Optimized circuit (20 points)
The goal of this task is to find a minimal circuit using only AND, OR, and NOT gates. Based on the truth
table and Boolean algebra terms from section 1.1.
1. Subtask-1: Optimize the function using Karnaugh map to its minimal form.
2. Subtask-2: Optimize the function using Boolean identities and verify its minimal form with that
from the subtask-1.
You will need to create two Karnaugh maps and work on two separate Boolean Identities reduction forms,
one for each output Z1 & Z2. Your documentation must show
a) the K-Maps.
b) the groups found in the K-Maps.
c) reduced Boolean functions derived from K-Maps.
d) The two Boolean identities reduction for Z1 & Z2 with steps.
e) A comparison of the two methods (K-Map & Boolean Identities methods) showing how they relate
to terms in the optimized Boolean function.
Then, use Logisim to create a minimal circuit, using only AND, OR, and NOT gates. Test your optimized
circuit using values from the truth table and document at least three test cases (you may take “Print
Screen” of your Logisim logic circuit showing appropriate inputs and corresponding outputs).
Note: You can use Product-of-Sum or Sum-of-Product to optimise in subtask-2.
2. MARIE (50 Marks)
In this task you will develop a MARIE application that performs some manipulation of strings.
We will break it down into small steps for you.
Most of the tasks require you to write the code, test your code with sample inputs and write a small
analysis explaining the expected outcome. Your MARIE program must contain brief comments
explaining the purpose of your subroutines and main programs (to be written in the .mas file). You
must submit your code as .mas files together with the rest of your assignment.
The description of your experiences while testing your code with test inputs and the subsequent analysis
needs to be submitted as part of the main PDF file you submit for this assignment. In some cases
wherever it is appropriate, you may add test data to your program to prepare test cases. These test cases,
which are mostly appropriate for programs processing numeric data, should be working without
requiring much input from the user, i.e. a self-contained MARIE assembly program.
The following section introduces some concepts that you need for the rest of the assignment.
Name as Strings
A string is a sequence of characters. It’s the basic data structure for storing text in a computer. There
are several different ways of representing a string in memory and how to deal with strings of arbitrary
length. For this assignment, we will use the following string representation:
● A string is represented in a contiguous memory location, with each address containing a
single character.
● The characters are encoded using the ASCII encoding. End of a string is marked by the ASCII
character comma ‘,’.
● A name will be composed of two strings, namely, First Name and Last Name.
● End of a name will be marked by another ASCII character dot ‘.’.
Representation of Strings in Memory using ASCII code
An illustrated example below showing how a name “John Noah” would be represented in
memory (written as hexadecimal numbers):
Note that for a string with n characters, we need n + 2 words of memory in order to store all the
characters belonging to a first name, a last name, the additional ‘,’ and ‘.’.
Strings in MARIE
In MARIE assembly language programming, we can make use of the ADR command, the HEX
keyword and a label “myName” to put a string into memory:
myNameAdd, ADR myName
myName, HEX 04A /J
HEX 06F //o
HEX 068 //h
HEX 06E //n
HEX 02C //,
HEX 04E //N
HEX 06F //o
HEX 061 //a
HEX 068 //h
HEX 02E //.
After assembling the above MARIE code, we will find that the variable (or label) myNameAdd contains
the address of the string i.e. the address of the first character ‘J’ of the string “John Noah”. An example
below shows how to access the first character of the above string and display:
start, LoadI myNameAdd
Output
……...
Halt
2.1 Write a MARIE Program to Store Multiple User Entered Names in
Consecutive Memory Rows and Print Them at the End of Data
Entry. (20 marks)
Prepare a MARIE program to enter full names using Unicode / ASCII characters. Limit each
part of a name (First Name or Last Name) to at most 5 characters – if a name is longer, you can
shorten it (limit the maximum number of characters per full name to 12). After assembling and
running your MARIE program, it should prompt for entering names using a keyboard. For the
MARIE simulator, Unicode input from the keyboard can only be entered character by character.
Your program should store the names in MARIE memory and print them at the end.
(i). Subroutine subInputNames: The first part of your program should focus on getting the
full names as input from the keyboard and storing them in a particular location in MARIE
memory. For this task, prepare a MARIE subroutine called subInputNames. Your
subroutine should input (Unicode /ASCII) ',’ terminated First name and (Unicode
/ASCII) '.' terminated Last name as described in the previous section. The names have to
be stored starting from the memory address 300H. A single name (First Name and Last
Name) is to be stored in one row of MARIE memory. After entering a full name, a
Unicode/ASCII '.' will be stored to mark the end of the name in the memory, and the
program should proceed to take the next name, which is to be stored at memory location
310H. This location is one row (16 words) ahead from the memory location of the
previous name entry. You can use memory locations 320H, 330H , … to store more
names respectively. After entering a full name, a '$' from input will terminate the entire
name entry process and will return control to the calling program. You have to store the
'$' in the memory to mark the end of the name database. Your program must be capable
of accepting names one after the other, until a user enters a '$' to stop taking inputs. You
can verify the correct working of your program by viewing the memory content starting
from #300H.
(ii). Subroutine subPrintString: In the second part of your program, prepare a MARIE
subroutine called subPrintString that can print all the full names stored. This
subPrintString subroutine should access all the full names in the memory (that are
entered and saved by the subInputNames earlier) and printout using the “Output”
instruction.
Start by using a label “PrintNameAdd” that holds the start address of a name string (like,
myNameAdd in the example above). The code should then load a character from that
address, output it if it is not ‘,’, then increment the address by one, and keep doing that
until the character loaded from the address is a ‘,’ (which signals the end of the first
name). Then, instead of printing (or output) the ASCII “,” character, print an ASCII
“Space” character, and proceed to print the second part of the name string, i.e. Last Name
until the character loaded from the address is a ‘.’ (which signals the end of the Last
Name). Then, when you load the ASCII ‘.’ which marks the “end of a name”, instead of
printing (or output) the ASCII “.” character, print an ASCII “New Line” character. Then
your program should proceed to print the next name. If the loaded character is '$', the
subroutine needs to stop printing and gives control to the main program. While testing
your code and writing the test cases for this task, you have to use at least three names
(your First Name and Last Name, your friend’s name and your tutor’s name). Please note
that these names should not be hard coded and assigned labels to identify each of these
three names.
To receive full marks, your code needs to be in the form of a main program and use of
subroutine that can be called using the JnS instruction. Save your code as
“2_1_Enter_and_PrintingNames.mas”.
2.2 A MARIE Subroutine to Convert Names to UpperCase and Print
(15 marks)
Write a subroutine to change and print all characters of the user entered name strings to UPPER
CASE characters. Name the subroutine as subToUpperCase. This subroutine modifies all
characters of a string in memory to upper case. The program should then print the original name
string and the modified upper case string. Submit your MARIE code and documentation of test
cases converting at least three names. To receive full marks, the main program from section 2.1
must be extended to print the original name string and the modified upper-case name string by
calling the respective subroutines. Name your MARIE code file as “2_2_UpperCase.mas”.
Hint: you can easily identify the lowercase ASCII value ranges through the ASCII table and
notice the numeric difference between the uppercase and lowercase characters.
Names in Upper Case
2.3 A Three Function Calculator in MARIE (15 marks)
In this task, you will develop a MARIE program that performs three mathematical functions of
a calculator – multiplication, division and exponent. The program should be performing the
user selected tasks (one of the mentioned mathematical operations) after the user enters one of
the selections, ‘m’, ‘d’, or ‘e’. Here, input ‘m’ selects the multiplication process, ‘d’ selects the
division process and ‘e’ is for calculating the exponent. User enters ‘q’ to quit the program. If
the user input is ‘m’, ‘d’, or ‘e’, then the program should ask for operands x and y and display
the result.
Example:
● INPUT SELECTION = ‘m’ and the input numbers are ‘x’ & ‘y’ then the resultant
output = ‘x * y’
● INPUT SELECTION = ‘d’ and the input numbers are ‘x’ & ‘y’ then the resultant
output = ‘x/y’
● INPUT SELECTION = ‘e’ and the input numbers are ‘x’ & ‘y’ then the resultant output
= ‘xy
’
● INPUT SELECTION = ‘q’ simply quits the program and exit. The program should
run infinitely, until a user enters ‘q’.
You are required to write subroutines (for each operation) to perform these tasks
(multiplication, division and exponent) and write a main program to process user operation
selection, accept the ‘x’ & ‘y’ inputs and call the appropriate subroutine thereof. The codes
must contain comments, as a paragraph before any block of code (i.e. subroutine) or as inline
comments wherever appropriate. You should submit the “2_3_Calculator.mas” file together
with the rest of your assignment.
Page 1 of 8
Files to be submitted:
One zipped folder named “YourFirstName_LastName_StudentID.zip”
containing the following files.
1. Report for the written tasks
(One PDF file called YourFirstName_LastName_ StudentID.pdf).
a. The report should include your Full name, your student ID, your class
number and your tutor’s name.
b. Include the original truth table in the pdf.
c. The pdf report should show the workings for the following:
i. Subtask-1: Optimize the function using Karnaugh maps to its
minimal form
ii. Subtask-2: Optimize the function using Boolean identities and
verify its minimal form from the subtask-1.
iii. You will need to include two Karnaugh maps worked on two
separate Boolean Identities reduction forms, one for each output Z1
& Z2. Your documentation must show
1. the K-maps.
2. the groups found in the maps
3. The Boolean identities reduction steps
4. and how they relate to terms in the optimized Boolean function.
d. Documentation related to Task 2, if there is any.
2. Task 1.2 – Logisim File. Name the file as “LogicCircuit.circ”.
3. Task 1.3 – Logisim File. Name the file as “OptimizedCircuit.circ”.
4. Task 2.1 – MARIE File. Name the file as “2_1_Enter_and_PrintingNames.mas”.
5. Task 2.3 – MARIE File. Name the file as “2_2_UpperCase.mas”.
6. Task 2.2 – MARIE File. Name the file as “2_3_Calculator.mas”.
7. Please also include your (Lab Reflective Journal Week 1 to 5) (Weight: 5%) included within the
ASSIGNMENT-1 zip folder. The Reflective Journal is a single PDF document that is Lab
Reflective Journal for weeks 1 to 5. The document is 2 pages max.
Zip the folder with this name (YourFirstName_LastName_StudentID.zip) and
submit it to Moodle. You need to make sure there are no spaces in any of the filenames.
End of Assignment 1
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
urba6006代写、java/c++编程语...
2024-12-26
代做program、代写python编程语...
2024-12-26
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!