日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

CIT 593代做、代寫Java/c++語言編程

時間:2024-07-24  來源:  作者: 我要糾錯


CIT 593 – Module 11 Assignment Instructions  
CIT 593 – Module 11 Assignment  
Making the LC4 Assembler Instructions  
Contents  
Assignment Overview 3  
Learning Objectives 3  
Advice 3  
Getting Started 4  
Codio Setup 4  
Starter Code 4  
Object File Format Refresher 4  
Requirements 5  
General Requirements 5  
Assembler 5  
assembler.c: main 5  
asm_parser.c: read_asm_file 6  
asm_parser.c: parse_instruction 6  
asm_parser.c: parse_add 6  
asm_parser.c: parse_xxx 6  
asm_parser.c: str_to_bin 7  
asm_parser.c: write_obj_file 7  
Extra Credit 8  
Suggested Approach 8  
High Level Overview 8  
Great High Level Overview, but I really need a Slightly More Detailed Overview 10  
Part 0: Setup the main Function to Read the Arguments 10  
Part 1: Read the .asm File 10  
Part 2: Parse an Instruction 1  
Part 3: Parse an ADD Instruction 1  
Part 4: Converting the binary string to an hexadecimal formatted integer 1  
Part 5: Writing the .obj object file 1  
Testing 1  
Validate Output with PennSim 1  
Files for Testing 1  
Unit Testing 1  
GDB for Debugging 1  
Submission 1  
Submission Checks 1  
The Actual Submission 1  
Page 1 of 24CIT 593 – Module 11 Assignment Instructions  
Grading 1  
Assembler 1  
Extra Credit 1  
An Important Note of Plagiarism 1  
FAQ 1  
Quick Hints 1  
Formatting 1  
Endianness 1  
Resources 1  
Page 2 of 24CIT 593 – Module 11 Assignment Instructions  
Assignment Overview  
From lecture you’ve learned that C is file-oriented and that working with files represents I/O  
devices in C.  
C files fall into two categories: "text" and "binary". In this assignment you’ll work with both types  
by reading in a text file and writing out a binary file.  
You will read an arbitrary .asm file (a text file intended to be read by PennSim) and write a .obj  
file (the same type of binary file that PennSim would write out).  
Aside from reading and writing out the files, your task will be to make a mini-LC4- Assembler!  
An assembler is a program that reads in assembly language and generates its machine  
equivalent.  
This assignment will require a bit more programming rigor than we’ve had thus far, but now that  
you’ve gained a good amount of programming skill in this class and in others, it is the perfect  
time to tackle a large programming assignment (which is why the instructions are so many  
pages).  
Learning Objectives  
This assignment will cover the following topics:  
● Review the LC4 Object File Format  
● Read text files and process binary files  
● Assemble LC4 programs into executable object files  
● Use debugging tools such as GDB  
Advice  
● Start early  
● Ask for help early  
● Do not try to do it all in one day  
Page 3 of 24CIT 593 – Module 11 Assignment Instructions  
Getting Started  
Codio Setup  
Open the Codio assignment via Canvas. This is necessary to link the two systems.  
You will see many directories and files. At the top-level workspace directory, the mail files are  
asm_parser.h, asm_parser.c, assembler.c, and PennSim.jar.  
Do not modify any of the directories or any file in any of the directories.  
Starter Code  
We have provided a basic framework and several function definitions that you must implement.  
assembler.c - must contain your main function.  
asm_parser.c - must contain your asm_parser functions.  
asm_parser.h - must contain the definition for ROWS and COLS  
- must contain function declarations for read_asm_file,  
parse_instruction, parse_reg, parse_add, parse_mul,  
str_to_bin, write_obj_file, and any helper function you  
implement in asm_parser.c  
test1.asm - example assembly file  
PennSim.jar - a copy of PennSim to check your assembler  
Object File Format Refresher  
The following is the format for the binary .obj files created by PennSim from your .asm files. It  
represents the contents of memory (both program and data) for your assembled LC-4 Assembly  
programs. In a .obj file, there are 3 basic sections indicated by 3 header “types” = Code , Data,  
and Symbol:  
● Code: 3-word header (xCADE, <address>, <n>), n-word body comprising the instructions.  
○ This corresponds to the .CODE directive in assembly.  
● Data: 3-word header (xDADA, <address>, <n>), n-word body comprising the initial data  
values.  
○ This corresponds to the .DATA directive in assembly.  
● Symbol: 3-word header (xC3B7, <address>, <n>), n-character body comprising the  
symbol string. These are generated when you create labels (such as “END”) in  
assembly. Each symbol is its own section.  
○ Each character in the file is 1 byte, not 2 bytes.  
○ There is no NULL terminator.  
Page 4 of 24CIT 593 – Module 11 Assignment Instructions  
Requirements  
General Requirements  
● You MUST NOT change the filenames of any file provided to you in the starter code.  
● You MUST NOT change the function declarations of any function provided to you in the  
starter code.  
● You MAY create additional helper functions. If you do, you MUST correctly declare the  
functions in the appropriate header file and provide an implementation in the appropriate  
source file.  
● Your program MUST compile when running the command make.  
● You MUST NOT have any compile-time errors or warnings.  
● You MUST remove or comment out all debugging print statements before submitting.  
● You MUST NOT use externs or global variables.  
● You MAY use string.h, stdlib.h, and stdio.h.  
● You SHOULD comment your code since this is a programming best practice.  
● Your program MUST be able to handle .asm files that PennSim would successfully  
assemble. We will not be testing with invalid .asm files.  
● Your program MUST NOT crash/segmentation fault.  
● You MUST provide a makefile with the following targets:  
○ assembler  
○ asm_parser.o  
○ all, clean, clobber  
Assembler  
assembler.c: main  
● You MUST not change the first four instructions already provided.  
● The main function:  
○ MUST read the arguments provided to the program.  
■ the user will use your program like this:  
./assembler test1.asm  
○ MUST store the first argument into filename.  
○ MUST print an error1 message if the user has not provided an input filename.  
○ MUST call read_asm_file to populate program[][].  
○ MUST parse each instruction in program[][] and store the binary string equivalent  
into program_bin_str[][].  
○ MUST convert each binary string into an integer (which MUST have the correct  
value when formatted with "0x%X") and store the value into program_bin[].  
○ MUST write out the program into a .obj object file which MUST be loadable by  
PennSim's ld command.  
Page 5 of 24CIT 593 – Module 11 Assignment Instructions  
asm_parser.c: read_asm_file  
This function reads the user file.  
● It SHOULD return an error2 message if there is any error opening or reading the file.  
● It MAY try to check if the input program is too large for the defined variables, but we will  
not be testing outside the provided limits.  
● It MUST read the exact contents of the file into memory, and it MUST remove any  
newline characters present in the file.  
● It MUST work for files that have an empty line at the end and also for files that end on an  
instruction (i.e. do not assume there will always be an empty line at the end of the file).  
● It MUST return 0 on success, and it MUST return a non-zero number in the case of  
failure (it SHOULD print a useful error message and return 2 on failure).  
asm_parser.c: parse_instruction  
This function parses a single instruction and determines the binary string equivalent.  
● It SHOULD use strtok to tokenize the instruction, using spaces and commas as the  
delimiters.  
● It MUST determine the instruction function and call the appropriate parse_xxx helper  
function.  
● It MUST parse ADD, MUL, SUB, DIV, AND, OR, XOR instructions.  
○ It MUST parse ADD IMM and AND IMM if attempting that extra credit.  
● It MUST return 0 on success, and it MUST return a non-zero number in the case of  
failure (it SHOULD print a useful error message and return 3 on failure).  
asm_parser.c: parse_add  
This function parses an ADD instruction and provides the binary string equivalent.  
● It MUST correctly update the opcode, sub-opcode, and register fields following the LC4  
ISA.  
● It SHOULD call a helper function parse_reg, but we will not be testing this function.  
● It MUST return 0 on success, and it MUST return a non-zero number in the case of  
failure (it SHOULD print a useful error message and return 4 on failure).  
asm_parser.c: parse_xxx  
You MUST create a helper function similar to parse_add for the other instruction functions  
required in parse_instruction.  
● They MUST correctly update the opcode, sub-opcode, and register fields following the  
LC4 ISA.  
● They SHOULD call a helper function parse_reg, but we will not be testing this function.  
● They MUST return 0 on success, and they MUST return a non-zero number in the case  
of failure (it SHOULD print a useful error message and return a unique error number on  
failure).  
Page 6 of 24CIT 593 – Module 11 Assignment Instructions  
asm_parser.c: str_to_bin  
This function converts a C string containing 1s and 0s into an unsigned short integer  
● It MUST correctly convert the binary string to an unsigned short int which can be verified  
using the "0x%X" format.  
● It SHOULD use strtol to do the conversion.  
asm_parser.c: write_obj_file  
This function writes the program, in integer format, as a LC4 object file using the LC4 binary  
format.  
● It MUST output the program in the LC4 binary format described in lecture and in the  
Object File Format Refresher section.  
● It MUST create and write an empty file if the input file is empty  
● It MUST change the extension of the input file to .obj.  
● It MUST use the default starting address 0x0000 unless you are attempting the .ADDR  
extra credit.  
● It MUST close the file with fclose.  
● It MUST return 0 on success, and they MUST return a non-zero number in the case of  
failure (it SHOULD print a useful error message and return 7 on failure).  
● The generated file MUST load into PennSim (and you MUST check this before  
submitting), and the contents MUST match the .asm assembly program  
 Page 7 of 24CIT 593 – Module 11 Assignment Instructions  
Extra Credit  
You may attempt any, all, or none of these extra credit options. You MUST test using your own  
generated examples (we will not provide any).  
Option 1: modify your read_asm_file function to ignore comments in .asm files. You MUST  
handle all types of comments for credit.  
Option 2: modify your program to handle ADD IMM and AND IMM instructions. Both MUST work  
completely for credit.  
Option 3: modify your program to handle the .CODE and .ADDR directives.  
Option 4: modify your program to handle the .DATA, .ADDR, and .FILL directives.  
Suggested Approach  
This is a suggested approach. You are not required to follow this approach as long as you  
follow all of the other requirements.  
High Level Overview  
Follow these high-level steps and debug thoroughly before moving on to the next.  
1. Initialize all arrays to zero or ' 日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

            9000px;">

                      粉嫩av一区二区三区在线播放| 成人av综合一区| 国产超碰在线一区| 在线看国产一区二区| 欧美电视剧在线看免费| 日韩理论片在线| 国产精品一区二区在线观看不卡 | 蜜桃av一区二区在线观看 | 老司机午夜精品99久久| 色综合久久久久| 欧美精品一区二区三区高清aⅴ| 亚洲欧美色综合| 风间由美性色一区二区三区| 欧美美女一区二区| 亚洲欧美日韩国产另类专区 | 人妖欧美一区二区| 欧美主播一区二区三区美女| 国产午夜精品在线观看| 日韩精品视频网站| 91国模大尺度私拍在线视频| 国产精品无遮挡| 国产老肥熟一区二区三区| 欧美高清dvd| 亚洲福利一区二区| 在线视频国产一区| 亚洲激情校园春色| 91小宝寻花一区二区三区| 国产三级一区二区三区| 国内精品在线播放| 精品久久一二三区| 麻豆国产精品视频| 欧美一级日韩免费不卡| 日韩精品午夜视频| 日韩欧美中文字幕精品| 免费观看一级特黄欧美大片| 91精品国产综合久久久久久久| 一区二区三区欧美亚洲| 91国模大尺度私拍在线视频| 亚洲精品久久久蜜桃| 在线观看91精品国产入口| 一区二区三区四区高清精品免费观看 | 丁香激情综合国产| 中文字幕一区二区三区不卡在线| 国产黑丝在线一区二区三区| 久久人人超碰精品| 成人精品视频一区二区三区| 国产视频911| 不卡的电影网站| 亚洲精品视频一区二区| 欧美在线观看视频在线| 婷婷成人综合网| 欧美一级欧美一级在线播放| 蜜桃传媒麻豆第一区在线观看| 精品国产免费一区二区三区四区| 国产在线精品一区二区夜色| 久久精品在线观看| 成人高清视频在线| 亚洲高清一区二区三区| 精品国免费一区二区三区| 国产成人aaa| 亚洲综合激情网| 欧美www视频| av电影一区二区| 亚洲va韩国va欧美va精品| 日韩亚洲欧美成人一区| 高清不卡一区二区| 亚洲成人av电影在线| 精品久久久久久久久久久院品网 | 蜜臀国产一区二区三区在线播放| 久久精品欧美日韩| 91蝌蚪porny| 日本sm残虐另类| 国产精品久久午夜夜伦鲁鲁| 欧美视频在线一区| 国产精品综合视频| 亚洲综合在线五月| 久久久综合激的五月天| 日本久久电影网| 国产精品主播直播| 亚洲一二三四在线| 国产欧美日韩卡一| 91精品一区二区三区在线观看| 国产福利91精品一区二区三区| 亚洲婷婷在线视频| 久久久久97国产精华液好用吗| 91麻豆精品秘密| 国产在线乱码一区二区三区| 亚洲午夜精品久久久久久久久| 久久新电视剧免费观看| 欧美日韩国产精品成人| av亚洲精华国产精华| 麻豆91精品91久久久的内涵| 亚洲在线观看免费| 中文字幕一区av| 久久这里只精品最新地址| 欧美日韩国产精选| 在线观看亚洲精品| 白白色 亚洲乱淫| 国产精品自在欧美一区| 日韩av网站免费在线| 亚洲精品免费视频| 亚洲日本在线天堂| 国产色爱av资源综合区| 2024国产精品| 欧美成人一区二区| 欧美卡1卡2卡| 欧美日韩综合在线免费观看| 91在线porny国产在线看| 久久国产福利国产秒拍| 亚洲成人在线免费| 一区二区成人在线视频| 亚洲天堂福利av| 国产精品久久久久aaaa樱花 | 日韩午夜在线影院| 欧美一卡二卡在线观看| 欧美妇女性影城| 91精品国产综合久久精品图片| 欧美理论片在线| 日韩视频免费观看高清在线视频| 欧美一卡二卡在线观看| 精品人在线二区三区| 欧美哺乳videos| 久久久美女艺术照精彩视频福利播放| 日韩欧美国产综合在线一区二区三区| 制服丝袜亚洲色图| 日韩你懂的在线播放| www欧美成人18+| 国产精品丝袜一区| 亚洲日本护士毛茸茸| 亚洲精品国产精华液| 亚洲电影激情视频网站| 日韩精品一级二级| 精品一区二区三区视频| 韩国欧美一区二区| 成人在线综合网| 91毛片在线观看| 欧美精品高清视频| 久久久夜色精品亚洲| 国产精品美女一区二区三区| 亚洲美女淫视频| 日日摸夜夜添夜夜添国产精品| 免费成人美女在线观看| 国产福利一区二区三区视频| www.久久久久久久久| 欧美乱妇23p| 国产亚洲欧美日韩日本| 亚洲黄色免费电影| 日韩vs国产vs欧美| 欧美电影免费观看高清完整版在线| 国产成人午夜精品5599| 91麻豆蜜桃一区二区三区| 欧美一区二区三区播放老司机| 久久综合色婷婷| 亚洲欧美国产77777| 青娱乐精品视频| 丁香六月综合激情| 欧美一区二区三区电影| 日韩美女久久久| 韩日欧美一区二区三区| 一本久道久久综合中文字幕| 日韩欧美资源站| 亚洲宅男天堂在线观看无病毒| 久久精品国产成人一区二区三区| 成人自拍视频在线| 欧美xxxxx牲另类人与| 一区二区三区四区av| 国产精品一二三区在线| 欧美日韩激情一区| 国产精品久久毛片| 激情五月播播久久久精品| 欧美午夜理伦三级在线观看| 国产丝袜美腿一区二区三区| 丝袜亚洲另类欧美综合| 91老师国产黑色丝袜在线| 欧美精品一区二区三区视频| 亚洲第一二三四区| 97精品国产97久久久久久久久久久久| 日韩三级.com| 性做久久久久久免费观看欧美| 成人午夜av在线| 久久久综合九色合综国产精品| 亚洲成人午夜电影| 日本二三区不卡| 国产女同性恋一区二区| 韩国精品久久久| 欧美一区二区视频在线观看2020| 一区二区视频在线看| 99免费精品视频| 国产视频一区在线观看| 国产精品自拍网站| 日韩欧美视频一区| 日本在线不卡一区| 欧美一区午夜精品| 蓝色福利精品导航| 欧美久久久久久蜜桃| 亚洲国产精品久久不卡毛片 | 正在播放一区二区| 日韩国产精品久久久久久亚洲| 在线视频观看一区| 亚洲国产你懂的|