成a人片国产精品_色悠悠久久综合_国产精品美女久久久久久2018_日韩精品一区二区三区中文精品_欧美亚洲国产一区在线观看网站_中文字幕一区在线_粉嫩一区二区三区在线看_国产亚洲欧洲997久久综合_不卡一区在线观看_亚洲欧美在线aaa_久久99精品国产_欧美卡1卡2卡_国产精品你懂的_日韩精品91亚洲二区在线观看_国内一区二区视频_91丨国产丨九色丨pron

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

時(shí)間:2024-07-24  來源:  作者: 我要糾錯(cuò)


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 '成a人片国产精品_色悠悠久久综合_国产精品美女久久久久久2018_日韩精品一区二区三区中文精品_欧美亚洲国产一区在线观看网站_中文字幕一区在线_粉嫩一区二区三区在线看_国产亚洲欧洲997久久综合_不卡一区在线观看_亚洲欧美在线aaa_久久99精品国产_欧美卡1卡2卡_国产精品你懂的_日韩精品91亚洲二区在线观看_国内一区二区视频_91丨国产丨九色丨pron
亚洲国产成人一区二区三区| 91麻豆精品国产91久久久| 成人va在线观看| 欧美伊人久久久久久久久影院| 制服.丝袜.亚洲.另类.中文 | 不卡在线视频中文字幕| 在线不卡欧美精品一区二区三区| 欧美人与z0zoxxxx视频| 久久免费看少妇高潮| 亚洲一区中文在线| 国产成人免费视频网站| 7777精品久久久大香线蕉| 国产精品久久久久久久久果冻传媒 | 一区二区不卡在线播放| 久久草av在线| 成人黄色在线视频| 紧缚奴在线一区二区三区| 91丨九色丨蝌蚪富婆spa| 国产婷婷精品av在线| 精品一区二区综合| 日韩丝袜美女视频| 日韩精品久久久久久| 欧美日韩在线精品一区二区三区激情 | 成人涩涩免费视频| 26uuu精品一区二区三区四区在线| 日韩av电影天堂| 欧美精品18+| 天天综合天天综合色| 欧美日韩国产不卡| 丝袜亚洲精品中文字幕一区| 欧美日韩中文字幕精品| 亚洲成人综合网站| 欧美电影在线免费观看| 日韩av成人高清| 日韩欧美国产一区在线观看| 毛片一区二区三区| 精品美女被调教视频大全网站| 久久精工是国产品牌吗| 精品剧情在线观看| 狠狠色丁香婷婷综合| 久久蜜桃av一区精品变态类天堂| 韩国中文字幕2020精品| 久久嫩草精品久久久久| 国产精品99久| 国产精品家庭影院| 99精品国产一区二区三区不卡| 国产精品电影一区二区| 91亚洲男人天堂| 亚洲黄色av一区| 欧美色中文字幕| 日韩精品一二三四| 欧美变态口味重另类| 国产乱子轮精品视频| 国产精品网站在线观看| 色综合久久久久综合99| 午夜影院久久久| 日韩午夜激情av| 久草精品在线观看| 国产嫩草影院久久久久| 91碰在线视频| 午夜影院在线观看欧美| 日韩精品一区二| 大胆亚洲人体视频| 亚洲乱码一区二区三区在线观看| 欧美日韩国产综合一区二区三区| 老司机午夜精品99久久| 国产三级精品视频| 日本韩国一区二区三区| 日韩**一区毛片| 久久精品这里都是精品| 91色在线porny| 午夜精品aaa| 欧美精品一区二区三区蜜臀| 成人综合激情网| 亚洲在线观看免费| 日韩免费一区二区| 99视频超级精品| 日韩综合小视频| 久久天天做天天爱综合色| 不卡的av电影| 日韩在线观看一区二区| 久久精品一二三| 在线这里只有精品| 蜜乳av一区二区| 国产精品高潮久久久久无| 欧美日韩国产影片| 国产又黄又大久久| 亚洲最大色网站| 欧美α欧美αv大片| 91网上在线视频| 日本网站在线观看一区二区三区| 国产视频亚洲色图| 在线观看一区二区精品视频| 久久er99热精品一区二区| 国产精品九色蝌蚪自拍| 91精品国产高清一区二区三区蜜臀 | 亚洲午夜精品网| 日韩欧美电影一区| 91首页免费视频| 欧美aaaaaa午夜精品| 国产精品久久久久久久久免费相片 | 亚洲成av人综合在线观看| 精品电影一区二区| 在线观看亚洲成人| 国产精品乡下勾搭老头1| 亚洲高清一区二区三区| 国产欧美日韩亚州综合 | 欧美一区日韩一区| 成人免费av在线| 日本一区中文字幕| 亚洲精品视频在线| 国产亚洲精品中文字幕| 7777精品伊人久久久大香线蕉超级流畅 | 午夜久久福利影院| 国产精品久久看| 精品国产亚洲在线| 欧美日韩精品一区二区| 成人18视频日本| 久久99精品久久久久久国产越南 | 欧美主播一区二区三区| 国产精品乡下勾搭老头1| 午夜精品福利一区二区三区av| 国产精品嫩草久久久久| 日韩精品自拍偷拍| 欧美日韩视频第一区| 91原创在线视频| 国产伦精品一区二区三区免费| 日韩激情一区二区| 亚洲自拍偷拍av| 国产精品久久久久桃色tv| 欧洲视频一区二区| 9久草视频在线视频精品| 激情综合色综合久久| 午夜精品福利一区二区蜜股av| 亚洲视频一区在线| 欧美激情一区二区三区| 欧美xxxx老人做受| 91麻豆精品国产91久久久久久| 91久久精品网| 99re这里只有精品首页| 国产91综合网| 国产麻豆视频一区二区| 精品一区二区免费看| 美腿丝袜亚洲一区| 奇米一区二区三区| 日产欧产美韩系列久久99| 亚洲第四色夜色| 亚洲福利视频一区| 一二三四区精品视频| 亚洲麻豆国产自偷在线| 亚洲日本在线观看| 亚洲视频香蕉人妖| 亚洲免费色视频| 一区二区三区在线视频播放 | 国产精品伊人色| 国产在线精品视频| 麻豆精品视频在线观看| 蜜桃av一区二区| 美女网站视频久久| 裸体一区二区三区| 蜜桃免费网站一区二区三区| 日本成人中文字幕| 麻豆91精品视频| 久久se精品一区精品二区| 久久国产精品一区二区| 紧缚奴在线一区二区三区| 激情文学综合网| 激情丁香综合五月| 国产精品影音先锋| 成人免费视频一区| 91在线播放网址| 在线观看一区日韩| 欧美人与性动xxxx| 日韩一级大片在线观看| 精品国产一区二区三区av性色| 26uuu久久天堂性欧美| 91高清视频免费看| 欧美区在线观看| 日韩欧美久久一区| 国产亚洲精品aa| 国产精品成人一区二区三区夜夜夜| 日韩美女视频一区| 亚洲国产精品久久人人爱蜜臀| 日韩精品久久久久久| 精品一区二区在线看| 高潮精品一区videoshd| 91在线精品秘密一区二区| 色综合久久九月婷婷色综合| 欧美午夜一区二区三区| 5858s免费视频成人| 精品国产91乱码一区二区三区| 久久精品综合网| 亚洲图片你懂的| 亚洲r级在线视频| 久久精品二区亚洲w码| 国产v综合v亚洲欧| 色天使久久综合网天天| 91精品国产一区二区| 久久精品日产第一区二区三区高清版| 国产精品久久久久国产精品日日|