精品深夜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>
        一区二区三区在线播放| 国产精品久久久久四虎| 91福利视频网站| 91视频com| 一本久久a久久精品亚洲| 粉嫩aⅴ一区二区三区四区| 国产一区二区成人久久免费影院| 日本欧美肥老太交大片| 日本人妖一区二区| 久久国产精品72免费观看| 久久www免费人成看片高清| 国内外成人在线| 国产精品亚洲人在线观看| 国产成人精品亚洲日本在线桃色 | 久久精品国产一区二区| 日本伊人精品一区二区三区观看方式| 日本不卡一二三| 精品一区二区三区免费视频| 国产黑丝在线一区二区三区| 色综合视频在线观看| 欧美日韩日日夜夜| 欧美成人r级一区二区三区| 国产欧美日韩亚州综合| 亚洲综合无码一区二区| 日韩黄色一级片| 国产成人在线看| 欧美视频日韩视频| 久久精品一级爱片| 一区二区在线观看视频在线观看| 免费成人深夜小野草| 99久久99久久久精品齐齐| 91精品国产品国语在线不卡| 中文字幕av一区二区三区| 午夜精品久久久久影视| 国产suv精品一区二区三区| 欧美亚洲国产一卡| 国产欧美一区二区在线观看| 亚洲不卡av一区二区三区| 国产精品正在播放| 欧美丰满高潮xxxx喷水动漫| 中文字幕在线不卡一区二区三区| 日韩综合在线视频| 91丝袜美女网| 国产日本一区二区| 日本aⅴ免费视频一区二区三区 | 日韩精品中文字幕一区二区三区| 18成人在线观看| 国产中文字幕一区| 欧美裸体一区二区三区| 中文字幕亚洲视频| 国产电影一区在线| 欧美日韩美少妇| 亚洲三级在线观看| 国产成人一级电影| 欧美电影免费观看高清完整版| 亚洲在线观看免费| 91同城在线观看| 中文字幕一区二区三区在线观看 | 国产精品伦理在线| 激情亚洲综合在线| 欧美一区二区三区在线视频| 一区二区高清免费观看影视大全 | 麻豆视频一区二区| 欧美性videosxxxxx| 日韩美女啊v在线免费观看| 成人午夜激情影院| 中文字幕欧美日韩一区| 国产在线精品一区二区夜色 | 日韩理论电影院| 成人少妇影院yyyy| 中文字幕国产一区二区| 国产91在线观看丝袜| 久久久久久99久久久精品网站| 麻豆成人免费电影| 精品国产污网站| 韩国欧美国产一区| 国产欧美一区二区精品婷婷| 成人污视频在线观看| 中文字幕一区二区三区色视频 | 国产在线视视频有精品| 精品久久久久久亚洲综合网| 久久成人av少妇免费| 欧美精品一区二区三区在线 | 亚洲毛片av在线| 欧洲一区二区三区免费视频| 亚洲一区二区偷拍精品| 欧美猛男超大videosgay| 青青草91视频| 久久久高清一区二区三区| 国产福利一区二区三区视频在线 | 日韩国产一二三区| 精品国产一区二区亚洲人成毛片| 国产在线精品一区二区| 中文字幕一区二区三区在线播放 | 男女男精品视频| 久久久国产一区二区三区四区小说| 国产精品影视天天线| 国产精品成人网| 欧美日韩一区二区在线视频| 久久99国产精品麻豆| 中文字幕乱码日本亚洲一区二区| 在线观看不卡一区| 精品在线播放免费| 综合亚洲深深色噜噜狠狠网站| 欧美日韩一区精品| 国产乱码精品1区2区3区| 亚洲精品成人在线| 精品剧情v国产在线观看在线| proumb性欧美在线观看| 日本在线不卡视频一二三区| 中日韩免费视频中文字幕| 欧美日韩亚洲丝袜制服| 国产精品中文字幕一区二区三区| 亚洲免费大片在线观看| 久久天堂av综合合色蜜桃网| 欧美亚洲国产bt| 成人爽a毛片一区二区免费| 日本成人在线电影网| 国产精品毛片高清在线完整版| 欧美日韩国产综合一区二区三区| 成人一级视频在线观看| 久久激情五月激情| 亚洲v精品v日韩v欧美v专区| 国产精品伦理在线| 2022国产精品视频| 欧美精品免费视频| 日本道色综合久久| a亚洲天堂av| 丰满岳乱妇一区二区三区| 免费黄网站欧美| 亚洲第一主播视频| 亚洲同性同志一二三专区| 久久精品一区二区三区四区| 日韩视频一区在线观看| 欧美视频中文一区二区三区在线观看| 国产.欧美.日韩| 激情欧美一区二区| 久久国产精品第一页| 日产欧产美韩系列久久99| 亚洲综合久久av| 亚洲精品一二三| 亚洲欧洲国产专区| 一区精品在线播放| 国产精品国产三级国产aⅴ中文| 国产三级一区二区三区| 国产亚洲精品中文字幕| 久久精品日产第一区二区三区高清版 | 欧美日韩免费电影| 欧美午夜精品久久久久久超碰| 91在线高清观看| 91成人国产精品| 欧美色欧美亚洲另类二区| 91国内精品野花午夜精品| 欧美亚洲一区二区在线观看| 欧日韩精品视频| 欧美精品一二三| 制服丝袜激情欧洲亚洲| 欧美一区二区三区色| 欧美变态tickling挠脚心| 欧美电视剧免费全集观看| 精品福利一二区| 中文一区二区在线观看| 亚洲人妖av一区二区| 亚洲影视在线播放| 石原莉奈在线亚洲二区| 麻豆91精品视频| 懂色av一区二区夜夜嗨| 91蜜桃免费观看视频| 欧美久久久一区| 久久久久国产成人精品亚洲午夜| 国产精品欧美一区喷水| 亚洲一区二区高清| 精品亚洲成a人在线观看| 国产成人aaa| 在线观看国产日韩| 精品国产乱码久久久久久浪潮 | 日日夜夜一区二区| 韩国一区二区视频| av亚洲精华国产精华| 欧美乱妇20p| 久久久噜噜噜久久中文字幕色伊伊| 中文字幕精品综合| 午夜精彩视频在线观看不卡| 国产美女主播视频一区| 在线观看亚洲成人| 2021久久国产精品不只是精品| 综合精品久久久| 精品一区二区影视| 一本一本久久a久久精品综合麻豆| 欧美精品v国产精品v日韩精品| 国产日产欧美一区二区视频| 亚洲已满18点击进入久久| 国产米奇在线777精品观看| 欧美色综合天天久久综合精品| 久久久一区二区三区| 五月天视频一区| 99免费精品视频| 久久嫩草精品久久久久| 性做久久久久久| 成人免费观看男女羞羞视频|