美女扒开腿免费视频_蜜桃传媒一区二区亚洲av_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇

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_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇
日日操免费视频| 天天操天天干天天操天天干| 多男操一女视频| 日本天堂在线播放| 老牛影视av老牛影视av| 999精品久久久| bl动漫在线观看| www.av视频| www.xxxx日本| √天堂中文官网8在线| 国产精品夜夜夜爽阿娇| 亚洲综合第一区| 一级片黄色录像| 91动漫免费网站| 在线观看黄网址| 欧美精品久久久久久久久46p| 性生交大片免费全黄| 欧美特黄一级片| 欧美一区二区三区爽爽爽| 国产中文av在线| a级片在线观看免费| 久久久久久国产精品日本| 午夜少妇久久久久久久久| 永久看看免费大片| 中文字幕乱码一区| 国产精品无码永久免费不卡| 女同毛片一区二区三区| 亚洲精品视频网址| 欧美69精品久久久久久不卡| 无码国产69精品久久久久网站| 天堂www中文在线资源| 蜜桃久久精品成人无码av| 一级黄色片网址| 黑人无套内谢中国美女| 国产亚洲色婷婷久久99精品91| 成人精品999| 91无套直看片红桃在线观看| 日本一级片免费| 漂亮人妻被黑人久久精品| 小早川怜子久久精品中文字幕| 丁香六月激情综合| 免费观看污网站| 亚洲图片第一页| 亚洲精品乱码久久| 男女男精品视频网站| 精品视频站长推荐| 日韩激情小视频| 中文字幕5566| 无码人妻久久一区二区三区蜜桃| av在线网站观看| 艳妇乳肉豪妇荡乳xxx| 日韩精品123区| 美女爆乳18禁www久久久久久 | 天堂av网手机版| 黄色国产在线视频| 国产精品99久久久久久成人| 公侵犯人妻一区二区三区| 中国男女全黄大片| 日本亚洲一区二区三区| 第一次破处视频| 人妻大战黑人白浆狂泄| www.啪啪.com| 粗大的内捧猛烈进出视频| 在线看的片片片免费| 国产精品18在线| 日本黄区免费视频观看| 中文字幕在线观看免费高清| 国产国语性生话播放| 少妇精品无码一区二区三区| 最新中文字幕日本| 好吊操视频这里只有精品| 日韩欧美中文字幕视频| 免费在线观看a级片| 99成人在线观看| 国产福利视频网站| 国产黄在线免费观看| 欧美黄色aaa| 欧美xxxx×黑人性爽| 美女又爽又黄视频毛茸茸| 熟女少妇一区二区三区| 久操视频在线观看免费| 神马久久精品综合| 第一页在线视频| 中文字幕高清视频| 天天鲁一鲁摸一摸爽一爽| 佐山爱在线视频| 国产精品一区二区入口九绯色| 91成年人网站| 欧美人禽zoz0强交| 无码人妻aⅴ一区二区三区| 国产激情在线免费观看| 国产精品酒店视频| 永久看看免费大片| 精品无码国产污污污免费网站 | 91精品少妇一区二区三区蜜桃臀| 日本伦理一区二区三区| 好吊操视频这里只有精品| 无码h肉动漫在线观看| 暗呦丨小u女国产精品| 大尺度做爰床戏呻吟舒畅| 自拍偷拍你懂的| 无码人妻精品一区二区三区温州| 一级片久久久久| 国偷自产av一区二区三区麻豆| 极品白嫩丰满美女无套| 中文字幕av播放| 天天干天天舔天天操| 国产精品日日摸夜夜爽| 欧美xxxooo| 日本黄色网址大全| 稀缺呦国内精品呦| 亚洲精品卡一卡二| 亚洲精品色午夜无码专区日韩| 成人在线短视频| 午夜国产福利一区二区| 欧美日韩国产一二三区| 毛茸茸多毛bbb毛多视频| 国产精品二区视频| 极品盗摄国产盗摄合集| 精品国产大片大片大片| 天堂资源在线视频| 最近中文字幕在线mv视频在线| 2018国产精品| 日本天堂在线播放| 国产精品嫩草69影院| 9999热视频| 日本午夜在线观看| 又黄又爽又色的视频| 日韩视频中文字幕在线观看| 青青青手机在线视频| 精品亚洲aⅴ无码一区二区三区| 美国黄色a级片| 亚洲精品视频久久久| 亚洲乱码国产乱码精品精大量| 精品少妇人妻av一区二区三区| 人妻精油按摩bd高清中文字幕| 亚洲二区在线播放| 精品人妻人人做人人爽夜夜爽| 五月婷婷一区二区三区| 中文字幕人妻无码系列第三区| 色哟哟在线观看视频| 亚洲一二三四五| 国产精品无码永久免费不卡| av黄色在线免费观看| 国产精品麻豆一区| 日本女人性视频| 90岁老太婆乱淫| 永久av免费网站| 欧美做受高潮中文字幕| 国产精品1000部啪视频| 一区二区三区久久久久| 国产美女福利视频| aaaaaav| 开心激情五月网| 2018国产精品| 欧美成人国产精品一区二区| 希岛爱理中文字幕| 成人影视免费观看| 网站永久看片免费| 日韩网站在线播放| 永久免费看片在线观看| 色无极影院亚洲| 手机免费看av片| www.97视频| 人妻aⅴ无码一区二区三区 | 亚洲三级在线视频| 国产毛片久久久久久久| 日本xxxx免费| 欧美色图17p| 亚洲国产精品自拍视频| 99国产精品无码| 亚洲永久精品ww.7491进入| 欧洲成人午夜精品无码区久久| 国产1区2区在线观看| 免费黄色三级网站| 久久久精品人妻一区二区三区| 最新中文字幕av| 欧美性xxxx图片| 亚洲观看黄色网| 亚洲av午夜精品一区二区三区| 你懂得视频在线观看| 国产中年熟女高潮大集合| 欧产日产国产精品98| 国产国语老龄妇女a片| avtt中文字幕| 肉丝美足丝袜一区二区三区四| 国产老头老太做爰视频| 多男操一女视频| 99久久婷婷国产综合| 国产高潮流白浆| 69xx绿帽三人行| 亚洲欧美日韩中文字幕在线观看| 欧美一级特黄高清视频| 天堂а√在线中文在线鲁大师| 在线免费观看视频| 午夜影院黄色片| 国产在线观看免费视频软件| 欧美成人777| 岛国av免费观看| 国产美女喷水视频|