亚洲十八**毛片_亚洲综合影院_五月天精品一区二区三区_久久久噜噜噜久久中文字幕色伊伊 _欧美岛国在线观看_久久国产精品毛片_欧美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 '
亚洲国产cao| 水莓100在线视频| 成人免费影院| 亚洲精品免费视频| 色88888久久久久久影院| 制服.丝袜.亚洲.另类.中文| 日韩av电影天堂| 中文日韩在线| 亚洲三级免费| 中文无码日韩欧| av日韩在线免费观看| 国产人妖一区| 欧美在线亚洲| 国产在线国偷精品产拍免费yy| 26uuu另类欧美亚洲曰本| 国产视频一区在线观看| 成人黄色一级视频| 国产一区欧美一区| 国产揄拍国内精品对白| yourporn久久国产精品| 国产99久久久久久免费看农村| 成人免费视频caoporn| 亚洲成av人片乱码色午夜| 手机福利在线| 亚洲福利国产精品| 99精品国产福利在线观看免费| 桃色av一区二区| 2023欧美最顶级a∨艳星| 成人日批视频| 金瓶狂野欧美性猛交xxxx | 91视频免费看| 欧美日韩成人一区| 色屁屁www国产馆在线观看| 美女国产一区| 色综合久久综合网欧美综合网| 中文字幕中文字幕在线十八区 | 日韩午夜高潮| 日韩av一区二区三区四区| av在线播放一区二区三区| av成人免费在线| 日韩在线观看| 久久三级毛片| 免费看a在线观看| 天堂中文字幕一二区| 欧美视频一区在线| 日本午夜免费福利视频| 久草资源在线观看| 青草影视电视剧免费播放在线观看| 国产精品yjizz视频网| 欧美韩国一区| 一区二区三区视频在线观看| 嫩草伊人久久精品少妇av杨幂| 国产成人自拍网| av免费观看一区二区| 99久久夜色精品国产亚洲96 | 午夜男人视频在线观看| sis001欧美| 日本在线精品| 亚洲伦伦在线| 亚洲国产精品二十页| 精品久久久久久久久久久久久久久久久| 欧美在线播放高清精品| 免费在线播放av| 午夜不卡视频| 久久精品一区二区国产| 欧美日韩黄视频| 婷婷丁香六月天| 一区二区视频免费完整版观看| 老司机一区二区三区| 一区二区三区精品视频| 精品在线视频一区| 亚洲亚洲人成综合网络| 国产小视频免费在线观看| 91亚洲一区| 欧美日韩亚洲综合在线| av有声小说一区二区三区| 青娱乐精品在线视频| 久久久精品免费免费| 欧美日本一区二区在线观看| 裸体av在线| 高清久久一区| 狠狠色2019综合网| 欧美性猛交xxxx乱大交极品| 色婷婷久久综合| 一级片在线免费看| av免费在线网站| 成人少妇影院yyyy| 神马电影网我不卡| 久久精品99国产精品| 欧美日韩在线直播| 91精品国产色综合久久不卡粉嫩| 久久精品一区二区三区中文字幕| 国产日韩欧美一区在线| 羞羞的视频网站| 日韩国产一区二区| 欧美一区二区私人影院日本| 福利一区福利二区| 国产激情精品一区二区三区| 亚欧美中日韩视频| 日本中文字幕在线播放| 亚洲欧洲美洲综合色网| 欧美极品中文字幕| 欧美在线色视频| 久久人人99| 亚洲视频1区2区| 精品国产丝袜高跟鞋| 国产一区二区在线视频| 国产在线资源| 免费精品视频在线| 日韩免费在线观看| 欧美性猛交xxx高清大费中文| 日韩专区在线视频| 国产盗摄在线视频网站| 欧美日韩一区小说| 欧美精品总汇| 亚洲1区2区3区4区| 亚洲精品动态| 精品少妇一区二区三区视频免付费 | 精品国产一区二区三区噜噜噜| 国产成人精品三级| 国产三级在线看| 亚洲人成小说网站色在线| 日本99精品| 91在线看国产| 免费人成在线观看网站| 国产欧美日本| qvod激情图片| 亚洲图片你懂的| 在线日韩中文| 国产免费永久在线观看| 国产精品久久久久一区二区三区 | 国产精品一区二区在线播放| 国产精品高清亚洲| 国产爆初菊在线观看免费视频网站 | 国产麻豆精品久久| 成人影音在线| 狠狠操第一页| 久久噜噜亚洲综合| 欧美bbbxxxxx| 91首页免费视频| 国内不卡的一区二区三区中文字幕| 一区二区三区精品| 欧美全黄视频| 欧美美女搞黄| 亚洲精品日日夜夜| 免费成人av在线播放| 日本在线三级| 国产成a人无v码亚洲福利| 伊人久久大香线蕉综合影院首页| 人日人天天爽| 欧美日韩国产一区二区| 亚洲美女色禁图| 欧美女优在线观看| 中文字幕国产一区| 亚洲有吗中文字幕| 日韩伦理在线一区| 一区二区日本视频| 宅男午夜电影| 青青草成人在线观看| 成人动漫在线免费观看| 女仆av观看一区| 国产精品入口麻豆九色| av网站在线播放| 韩国成人精品a∨在线观看| 日韩欧美在线国产| 美女福利一区二区| 日韩av电影一区| 国产黄色片大全| 日韩国产欧美一区二区| 欧美色视频日本版| 秋霞一区二区| 亚洲精品国产a久久久久久| 欧美a级在线观看| 久久久久国产精品人| 黄页网站在线观看免费| 全部av―极品视觉盛宴亚洲| 自拍偷拍电影| 国产精品久久精品日日| 日韩在线短视频| 欧美欧美午夜aⅴ在线观看| 久久精品国产亚洲一区二区三区 | 99在线播放| 国产综合色视频| 国模精品视频| 久久这里只有精品视频网| 黄网址在线观看| 久久精品免视看| 57pao成人永久免费| 欧美日韩亚洲系列| 成人在线视频免费观看| 精品av综合导航| 日韩av中文字幕一区二区| 北岛玲日韩精品一区二区三区| 一区二区国产盗摄色噜噜| 国产精品麻豆99久久久久久| 国产一区日韩二区欧美三区| 视频国产精品| 欧美性xxx| 欧美96在线丨欧| 国产精品美女久久久久aⅴ|