精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕

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无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕
<samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
<ul id="e4iaa"></ul>
<blockquote id="e4iaa"><tfoot id="e4iaa"></tfoot></blockquote>
    • <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
      <ul id="e4iaa"></ul>
      <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp><ul id="e4iaa"></ul>
      <ul id="e4iaa"></ul>
      <th id="e4iaa"><menu id="e4iaa"></menu></th>
        亚洲精品免费一区亚洲精品免费精品一区| 亚洲欧美另类视频| 黄色一级视频免费观看| 在线永久看片免费的视频| 男人的天堂一区二区| 国产无遮挡又黄又爽又色| 在线精品视频播放| 日韩中文字幕观看| 极品久久久久久久| 国产成人一区二区三区影院在线| 在线观看亚洲黄色| 男人的午夜天堂| 黄色av一级片| 成人乱码一区二区三区| 一本一本久久a久久| 亚洲专区第一页| 亚洲精品久久久久久久久久久久久久 | 亚洲精品1区2区3区| 日韩av卡一卡二| 日本欧美www| 久久久久黄色片| 精品人妻av一区二区三区| 国产永久免费网站| 免费激情视频网站| 欧美精品久久久久久久久46p| 久久免费视频99| 麻豆久久久久久久久久| 欧美性生交xxxxx| 少妇性l交大片7724com| 色男人天堂av| 中文字幕亚洲日本| 91激情视频在线| 成人午夜免费影院| 久久国产劲爆∧v内射| 九九热国产精品视频| 久久综合桃花网| 欧美一区二区三区影院| 婷婷久久久久久| 一本一道人人妻人人妻αv| 99精品免费观看| 国产福利在线免费| 欧美 日韩 成人| 中文字幕人妻一区二区三区视频| 一级二级三级视频| 韩国av永久免费| 天天天天天天天天操| 亚洲资源在线播放| 国产精品日日摸夜夜爽| 免费在线黄色网| 一区二区在线观看免费视频| 99久久久久成人国产免费| 国产精品久久久久久久久毛片| 久久精品成人av| 手机精品视频在线| www.com国产| 欧美一级一区二区三区| 一级黄色片免费| 久久亚洲精品国产| 亚洲精品成人无码| 精品国产视频一区二区三区| 日韩乱码人妻无码中文字幕久久| 亚洲AV无码一区二区三区少妇| 91精品国产乱码久久久| 激情综合网五月天| 自拍视频第一页| 免费黄色网址在线| 丰满少妇被猛烈进入一区二区| 日本精品久久久久久| 99久久99久久精品国产| 人妻 日韩 欧美 综合 制服| 亚洲码无人客一区二区三区| 久久久久亚洲AV成人网人人小说| 亚洲黄色在线播放| 日本一区二区三区网站| 不卡的在线视频| 午夜精品免费观看| 免费黄色小视频在线观看| 99免费观看视频| 中文字幕久久久久| 人妻精品无码一区二区| 波多野结衣视频网址| 午夜福利理论片在线观看| 国产精品免费无遮挡| 天天干天天操天天操| 激情综合激情五月| 啊啊啊国产视频| 中文字幕乱码在线| 日韩在线一区二区三区四区| 久久精品偷拍视频| 国产乱国产乱老熟| www.中文字幕在线观看| 亚洲精品乱码久久久久久动漫| 日韩国产成人在线| 国精产品一区一区三区免费视频| 亚洲天堂视频在线| 一级做a爱片久久毛片| 欧美日韩综合一区二区| 精品国产www| 国产一二三区av| 国产精品久久久久久久免费看| 91麻豆精品久久毛片一级| 最近中文字幕在线免费观看| 少妇激情一区二区三区视频| 日本亚洲一区二区三区| 日本一区二区三区四区五区| 欧美精品久久久久久久久25p| 黄色在线观看国产| 久久国产精品国产精品| 国产欧美熟妇另类久久久| 丰满岳乱妇国产精品一区| 91精产国品一二三| 成人爽a毛片一区二区| 国产成人免费看一级大黄| 国产第一页第二页| 国产精品 欧美 日韩| 国产成人一级片| 国产熟女精品视频| 精品无码久久久久| 麻豆精品免费视频| 日韩欧美国产另类| 亚洲 欧美 日韩 综合| 中文字幕乱视频| 夜夜爽久久精品91| www.欧美国产| 极品粉嫩小仙女高潮喷水久久| 黄色精品视频在线观看| 精品视频一二三区| 青娱乐国产精品视频| 五月婷婷亚洲综合| 亚洲欧洲国产综合| 国产精品爽爽久久| 欧美一区免费看| 中文字幕在线播放视频| 朝桐光av在线| 久久中文字幕免费| 一级做a爱片性色毛片| 91精东传媒理伦片在线观看 | 成人午夜视频在线播放| 第四色婷婷基地| 精品无码一区二区三区的天堂| 免费视频91蜜桃| 亚洲精品成人区在线观看| 国产精品国产精品国产| 久久午夜无码鲁丝片| 亚洲av永久纯肉无码精品动漫| 99国产揄拍国产精品| 韩国三级丰满少妇高潮| 少妇高潮久久久| 波多野结衣不卡视频| 内射后入在线观看一区| 天天爱天天做天天爽| 97精品人妻一区二区三区香蕉 | 一级黄色a毛片| 国产午夜在线一区二区三区| 日韩精品一区二区亚洲av性色| 亚洲欧美日韩第一页| 精品一区二区三区四区五区六区| 天堂在线观看视频| 国产精品酒店视频| 午夜精品久久久久久久99热黄桃| 国产福利资源在线| 小嫩苞一区二区三区| 国产67194| 无码人妻精品一区二区三区温州| 国产精品午夜一区二区| 亚洲不卡免费视频| 蜜桃av.com| 国产高潮流白浆| 中文字幕剧情在线观看| 久久久久人妻一区精品色欧美 | 男人天堂一区二区| www午夜视频| 性欧美精品中出| 国内精品久久99人妻无码| 中文人妻av久久人妻18| 久久免费在线观看视频| 国产suv精品一区二区69| 怡春院在线视频| 欧美一级xxxx| 久草视频一区二区| 国产超碰人人模人人爽人人添| 午夜精品久久久久久久99| 精品一区二三区| 国产毛片毛片毛片毛片| 亚洲另类第一页| 婷婷色在线观看| 日韩中文字幕高清| 久久免费激情视频| 国产伦精品一区二区三区视频女 | www.欧美激情.com| 中文字幕av一区二区三区人妻少妇 | 韩国视频一区二区三区| 91精品久久久久久久久久久久| 色欲狠狠躁天天躁无码中文字幕| 国产又粗又大又爽| 国产伦精品一区二区三区视频我| 亚洲图片在线视频| 亚洲精品911| 亚洲色图欧美另类| 一本色道久久综合精品婷婷|