久久久久久精品无码人妻_青春草无码精品视频在线观_无码精品国产VA在线观看_国产色无码专区在线观看

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 '久久久久久精品无码人妻_青春草无码精品视频在线观_无码精品国产VA在线观看_国产色无码专区在线观看

路边理发店露脸熟妇泻火| 污片在线免费看| 精品久久久久久无码国产| 五月天综合婷婷| 日本高清久久久| 精品久久久久久久无码| 精品国产一二三四区| 中文字幕日韩精品无码内射| 色婷婷一区二区三区在线观看| 爱情岛论坛成人| 日本在线视频www| 欧美一区二区三区爽大粗免费| 欧美黄色免费网址| 色撸撸在线观看| 福利视频999| 日韩成人av免费| 日韩精品视频一二三| 午夜激情av在线| 欧美特黄aaa| 亚洲综合婷婷久久| 日韩精品视频一二三| 亚洲乱码国产一区三区| 福利在线一区二区三区| 丰满少妇在线观看| 欧美日韩亚洲自拍| 超碰超碰在线观看| 色戒在线免费观看| 国产三级精品三级在线| 热久久久久久久久| 国产91沈先生在线播放| 一级在线免费视频| 日本在线一二三区| 日本不卡一区在线| 伊人国产精品视频| 天堂网成人在线| 国产一二三四区在线观看| 女人床在线观看| 欧美高清中文字幕| 91精品国产91久久久久麻豆 主演| 人妻无码久久一区二区三区免费| 日韩中字在线观看| 日韩av黄色网址| 韩国视频一区二区三区| 爽爽爽在线观看| 国产99久久九九精品无码| 男人的天堂99| 午夜精品中文字幕| 黄色a级在线观看| 日韩一级性生活片| 久久精品网站视频| www.久久久久久久久久久| 国产日韩欧美大片| 男人日女人下面视频| 男人透女人免费视频| 亚洲综合日韩欧美| 警花观音坐莲激情销魂小说| 国产欧美日韩网站| av五月天在线| 大桥未久一区二区| 欧美不卡在线播放| 天堂视频免费看| 国产av熟女一区二区三区| 国产精品99久久免费黑人人妻| 777一区二区| 97中文字幕在线| 国产日韩一区二区在线| www.日本久久| 人妻少妇精品无码专区二区| 国产视频在线视频| 丁香色欲久久久久久综合网| 日本熟妇人妻中出| 国产小视频免费| 国产一区二区在线免费播放| 青草全福视在线| 国产精品视频黄色| 国产精品视频网站在线观看| 密臀av一区二区三区| 人人妻人人澡人人爽欧美一区| 欧美在线观看视频网站| 久久久天堂国产精品| 午夜欧美福利视频| 日本男女交配视频| 国产一区二区在线观看免费视频| 亚洲精品无码国产| 污污的视频免费| 色综合久久久久无码专区| 欧美 另类 交| 粉嫩虎白女毛片人体| 日韩精品一区二区免费| 粉色视频免费看| 成年网站在线免费观看| 国产精品一二三在线观看| 亚洲精品高清无码视频| 无码中文字幕色专区| www.-级毛片线天内射视视| 欧美日韩怡红院| 国产无限制自拍| 欧美性受xxxx黑人猛交88| 午夜欧美福利视频| 亚洲午夜无码av毛片久久| 高清无码一区二区在线观看吞精| 在线免费观看视频黄| 看av免费毛片手机播放| 欧美在线观看黄| 在线播放黄色av| 久久久久久久片| 久久精品免费一区二区| 中国黄色录像片| 成年网站免费在线观看| 能看的毛片网站| 男人靠女人免费视频网站 | 日本丰满大乳奶| 色婷婷成人在线| 日韩毛片在线免费看| 欧美爱爱视频免费看| 国产freexxxx性播放麻豆| www激情五月| 亚洲精品第三页| 99re精彩视频| 日本高清久久久| 不卡中文字幕在线观看| 中文字幕第80页| 黄色高清无遮挡| 精品国产成人av在线免| 成人在线观看a| 国产视频一区二区三区在线播放| 青青草原av在线播放| 久久无码高潮喷水| 久久精品香蕉视频| 久久久久国产精品熟女影院 | 久久久久久久久久久久久国产精品| 色欲色香天天天综合网www| 草草视频在线免费观看| 青青青国产在线观看| 欧美一级免费播放| 奇米影视亚洲色图| 欧美视频第一区| 男女无套免费视频网站动漫| 国产精品视频黄色| 欧美午夜aaaaaa免费视频| 五月天中文字幕在线| 天堂av在线8| 国产精品av免费| 国产911在线观看| 9999在线观看| 欧美视频在线观看视频| 精品这里只有精品| 免费成人午夜视频| 五月天亚洲视频| 午夜福利123| 亚洲一区 在线播放| 高清欧美精品xxxxx| 久久久久久久久久久免费视频| 欧在线一二三四区| www.色就是色.com| 日本a级片在线观看| 给我免费播放片在线观看| av网址在线观看免费| 在线看免费毛片| 中文字幕の友人北条麻妃| 男女私大尺度视频| 99免费视频观看| 国内av一区二区| 日韩美女爱爱视频| 免费看污污网站| 激情视频小说图片| 欧美色图色综合| 中文字幕在线视频精品| 国产一二三区在线播放| 黄色一级大片在线观看| 免费观看黄色的网站| 国产男女免费视频| 97超碰成人在线| 国产一线二线三线女| 免费激情视频在线观看| 久久久精品视频国产| 国产精品一区二区免费在线观看| 亚洲免费av一区| 国产中文字幕二区| 天堂在线中文在线| 久久久久免费看黄a片app| www.久久av.com| 人妻熟妇乱又伦精品视频| 免费成年人高清视频| 免费看一级大黄情大片| 在线成人免费av| 国产精品亚洲αv天堂无码| 午夜激情视频网| 国产麻花豆剧传媒精品mv在线| 黄色一级片免费播放| 成人在线激情网| 久艹在线免费观看| www.久久av.com| 久久久精品在线视频| ijzzijzzij亚洲大全| 欧美精品久久久久久久自慰 | 永久av免费在线观看| 少妇高潮喷水久久久久久久久久| 欧美国产在线一区| 黑森林精品导航|