国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務合肥法律

COP 3402 代做、代寫 c/c++,Python 程序
COP 3402 代做、代寫 c/c++,Python 程序

時間:2025-02-01  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯



Homework 1: P-Machine
COP 3402: Systems Software
Spring 2025
See Webcourses  for due dates.
 
Purpose
In this homework you will form a team and implement a virtual machine called the P-machine.
Teams must be either 1 person team or 2 people team.
Directions
(100 points) Implement and submit the P-machine as described in the rest of this document.
 
For the implementation, your code must be written in ANSI standard C and must compile with gcc and run correctly on Eustis. We recommend using the flag -Wall and fixing all warnings.
What to Read
Our recommended book is Systems Software: Essential Concepts (by Montagne) in which we recommend reading chapters 1-3.
 
In this assignment, you will implement a virtual machine (VM) known as the P-machine (PM/0). 
 
P-Machine Architecture
The P-machine is a stack machine that conceptually has one memory area called the process address space (PAS). The process address space is divided into three contiguous segments: The first 10 locations, called “unused”, the “text”, which contains the instructions for the VM to execute and the “stack,” which is organized as a data-stack to be used by the PM/0 CPU.
Registers
The PM/0 has a few built-in registers used for its execution: The registers are named:
• base pointer (BP), which points to the base of the current activation record
• stack pointer (SP), which points to the current top of the stack. The stack grows downwards., 
• program counter (PC), which points to the next instruction to be executed.
• Instruction Register (IR), which store the instruction to be executed
The use of these registers will be explained in detail below. The stack grows downwards.
Instruction Format
The Instruction Set Architecture (ISA) of the PM/0 hasinstructions that each have three components, which are integers (i.e., they have the C type int) named as follows.
OP​is the operation code.
    L​indicates the lexicographical level (We will give more details on L below)
M​depending of the operators it indicates:
​- A number (when OP is LIT or INC).
​- A program address (when OP is JMP, JPC, or CAL).
​- A data address (when OP is LOD, STO)
​- The identity of the arithmetic/relational operation associated to the OPR op-code. 
    (e.g. OPR 0 2 (ADD) or OPR 0 4 (MUL))
    
The list of instructions for the ISA can be found in Appendix A and B.
P-Machine Cycles
The PM/0 instruction cycle conceptually does the following for each instruction: 
 
The PM/0 instruction cycle is carried out in two steps. The first step is the fetch cycle, where the instruction pointed to by the program counter (PC) is fetched from the “text” segment, placed in the instruction register (IR) and the PC is incremented to point to the next instruction in the code list. In the second stepthe instruction in the IR is executed using the “stack” segment. (This does not mean that the instruction is stored in the “stack segment.”)
Fetch Cycle:
1.- IR.OP ß pas[pc]
​IR.L   ß pas[pc + 1]  
​IR.M  ß pas[pc + 2]
​(note that each instruction need 3 entries in array “TEXT”. 
2.- (PCß PC + 3). 
 
Execute Cycle:
The op-code (OP) component in the IR register (IR.OP) indicates the operation to be executed. For example, if IRencodes the instruction “2 0 2”, then the machine adds the top two elements of the stack, popping them off the stack in the process, and stores the result in the top of the stack (so in the end sp is one less than it was at the start). Note that arithmetic overflows and underflows happen as in C int arithmetic.  ​​​​
PM/0 initial/Default Values
When the PM/0 starts execution. 
 
BP == 499, SP == 500, and PC == 10; 
 
This means that execution starts with the “text segment” element 10. Similarly, the initial “stack” segment values are all zero (BP=499 and SP = BP + 1).
 
The figure bellow illustrates the process address space:
 
 
                                  ​ ​ Last instruction    ​​ ​​​               BP   SP
     0              10                                                    
PAS    UNUSED              TEXT    OP    L    M                      STACK              ??? 
                                                                 499    500     
                    PC                                                            
 
Size Limits
 
Initial values for PM/0 CPU registers are:
BP = 499 
SP = BP + 1; 
PC = 10;
Initial process address space values are all zero:  
pas[0] =0, pas[1] =0, pas[3] =0…..[n-1] = 0. 
Constant Values:
ARRAY_SIZE is 500
 
 
Note: Be aware that in PM/0 the stack is growing downwards
Assignment Instructions and Guidelines: 
1. The VM must be written in C and must run on Eustis3. If it runs in your PC but not on Eustis, for us it does not run.
2. The input file name should be read as a command line argument at runtime, for example: $ ./a.out input.txt (A deduction of 5 points will be applied to submissions that do not implement this).
3. Program output should be printed to the screen, and should follow the formatting of the example in Appendix C. A deduction of 5 points will be applied to submissions that do not implement this.
4. Submit to Webcourses:
a) A readme text file indicating how to compile and run the VM
b) The source code of your PM/0 VM which should be named “vm.c”
c) A signed sheet indicating the contribution of each team member to the project.
d) Student names should be written in the header comment of each source code file, in the readme, and in the comments of the submission
e) Do not change the ISA. Do not add instructions or combine instructions. Do not change the format of the input. If you do so, your grade will be zero.
f) Include comments in your program. If you do not comments, your grade will be zero.
g) Do not implement each VM instruction with a function. If you do, a penalty of -100 will be applied to your grade. You should only have functions: main, base, auxiliary functions to print but you must not use functions to implement instructions or FETCH. (Appendix D).
h) The team member(s) must be the same for all projects. In case of problems within the team. The team will be split and each member must continue working as a one-member team for all other projects.
i) On late submissions:
o One day late 10% off.
o Two days late 20% off.
o Submissions will not be accepted after two days.
o Resubmissions are not accepted after two days.
o Your latest submission is the one that will be graded.
 
We will be using a bash script to test your programs. This means your program should follow the output guidelines listed (see Appendix C for an example). You don’t need to be concerned about whitespace beyond newline characters. We use diff -w.
 
 
 
 
 
 
Rubric:
If you submit a program from another semester or we detect plagiarism your grade is F for this course. 
Using functions to implement instructions even if only one is implemented that way, means that your grade will be “zero”.
Pointers and handling of dynamic data structures is not allowed. If you do your grade is “zero”.  Only file pointer is allowed.
-100 – Does not compile
10 – Compiles
25 – Produces lines of meaningful execution before segfaulting or looping infinitely
5 – Follows IO specifications (takes command line argument for input file name and prints output to console)
10 – README.txt containing author names
5 – Fetch cycle is implemented correctly
10 – Well commented source code
5 – Arithmetic instructions are implemented correctly
5 – Read and write instructions are implemented correctly
10 – Load and store instructions are implemented correctly
10 – Call and return instructions are implemented correctly
5 – Follows formatting guidelines correctly, source code is named vm.c
Appendix A 
 
Instruction Set Architecture (ISA) – (eventually we will use “stack” to refer to the    stack segment in PAS)
 
In the following tables, italicized names (such as p) are meta-variables that refer to integers.  If an instruction’s field is notated as “-“, then its value does not matter (we use 0 as a placeholder for such values in examples).
 
ISA:
01   – ​LIT​0, M​​Pushes a constant value (literal) M onto the stack
 
02   – ​OPR​0, M​​Operation to be performed on the data at the top of the stack.​​​ ​​(orreturn from function)
 
03   – ​LOD​L, M​​Load value to top of stack from the stack location at  offset M from L lexicographical levels down
​​​
04   – ​STO​L, M​​Store value at top of stack in the stack location at offset M 
  from L lexicographical levels down
 
05   – ​CAL​L, M​​Call procedure at code index M (generates new 
   Activation Record and PC ß M)
 
06   – ​INC​0, M​​Allocate M memory words (increment SP by M). First three​​​​​are reserved to   Static Link (SL), Dynamic Link (DL),                    ​​​​​and Return Address (RA)
 
07   – ​JMP​0, M​​Jump to instruction M (PC ßM)
 
08   – ​JPC 0, M​​Jump to instruction M if top stack element is 0
 
09   – ​SYS 0, 1​​Write the top stack element to the screen
 
  ​SYS 0, 2​​Read in input from the user and store it on top of the stack 
 
  SYS 0, 3​​End of program (Set “eop” flag to zero)
   
   
   
 
 
 
OP Code Number    OP Mnemonic    L    M    Comment (Explanation)
01    LIT    0    n    Literal push: sp ß sp- 1; pas[sp] ßn 
02    RTN    0    0    Returns from a subroutine is encoded 0 0 0 and restores the caller’s AR:
sp ← bp + 1; bp ← pas[sp - 2];  pc ← pas[sp -3];
03    LOD    n    a    Load value to top of stack from the stack location at offset o from n lexicographical levels down
sp ß sp - 1;
pas[sp] ß pas[base(bp, n) - o];
04    STO    n    o    Store value at top of stack in the stack location at offset o from n lexicographical levels down
pas[base(bp, n) - o] ß pas[sp];
sp = sp +1;
05    CAL    n    a    Call the procedure at code address a, generating a new activation record and setting PC to a:
pas[sp - 1]  ß  base(bp, n); /* static link (SL)
pas[sp - 2]  ß bp;​/* dynamic link (DL)
pas[sp - 3]  ß pc;​ /*return address (RA)​
bp ß sp - 1;
pc ß a;
06    INC    0    n    Allocate n locals on the stack
sp ß sp - n;
07    JMP    0    a    Jump to address a:
PC ← a
08    JPC    0    a    Jump conditionally: if the value in stack[sp] is 0, then jump to a and pop the stack:if (stack[SP] == 0) then { pc (← a; } sp ← sp+1
09    SYS    0    1    Output of the value in stack[SP] to standard output as a character and pop:putc(stack[sp]); sp ← sp+1
(You can use printf if you wish) 
     SYS    0    2    Read an integer, as character value, from standard input (stdin) and store it on the top of the stack.sp ← sp-1; stack[sp] ← getc(); 
(You can use fscanf if you wish)
     SYS    0    3    Halt the program (Set “eop” flag to zero)
 
Appendix B (Arithmetic/Logical Instructions)
 
ISA Pseudo Code
   
 
02 – OPR  0, #​​(1 <= # <= 10)
    
 
​​​​1​ADD​​pas[sp + 1] ß pas[sp + 1] + pas[sp]
​​​​​​​sp ß sp + 1;
 
  2​SUB​​pas[sp + 1] ß pas[sp + 1] - pas[sp]
​​​​​​​sp ß sp + 1;
 
  3​MUL​​pas[sp + 1] ß pas[sp + 1] * pas[sp]
​​​​​​​sp ß sp + 1;
 
  4​DIV​​pas[sp + 1] ß pas[sp + 1] / pas[sp]
​​​​​​​sp ß sp + 1;
 
  5​EQL​​pas[sp + 1] ß pas[sp + 1] == pas[sp]
​​​​​​​sp ß sp + 1;
 
  6​NEQ​​pas[sp + 1] ß pas[sp + 1] != pas[sp]
​​​​​​​sp ß sp + 1;
 
  7​LSS​​pas[sp + 1] ß pas[sp + 1] < pas[sp]
​​​​​​​sp ß sp + 1;
 
  8​LEQ​​pas[sp + 1] ß pas[sp + 1] <= pas[sp]
​​​​​​​sp ß sp + 1;
 
  9​GTR​​pas[sp + 1] ß pas[sp + 1] > pas[sp]
​​​​​​​sp ß sp + 1;
 
  10​GEQ​​pas[sp + 1] ß pas[sp + 1] >= pas[sp]
​​​​​​​sp ß sp + 1;
 
   
 
 
 
 
Appendix C
Example of Execution
 
This example shows how to print the stack after the execution of each instruction.
 
INPUT FILE (In this example the program was stored at memory address zero)
For every line, there must be 3 values representing OP, Land M.
 
7 0 45
7 0 6
6 0 4
1 0 4
1 0 3
2 0 3
4 1 4
1 0 14
3 1 4
2 0 7
8 0 39
1 0 7
7 0 42
1 0 5
2 0 0
6 0 5
9 0 2
5 0 6
9 0 1
9 0 3
 
When the input file (program) is read in to be stored in the text segment starting at location 10 in the process address space, each instruction will need three memory locations to be stored. Therefore, the PC must be incremented by 3 in the fetch cycle.
 
10              13              16              19              22              25              …
7    0    45    7    0    6    6    0    4    1    0    4    1    0    3    2    0    4    etc
 
 
The initial CPU register values for the example in this appendix are:
SP = 500;
BP = SP - 1; 
PC = 10;
IR  = 0 0 0; (a struct or a linear array can be used to implement IR) 
Hint: Each instruction uses 3 array elements and each data value just uses 1 array element. 
 
 
OUTPUT FILE (In this example the program was storedat memory address zero)
Print out the execution of the program in the virtual machine, showing the stack and pc, bp, and sp.
 
NOTE: It is necessary to separate each Activation Record with a bar “|”.  
 
​​​​PC​BP​SP​stack
Initial values:​10​499​500
 
​JMP​0​45​45​499​500​
​INC​0​5​48​499​495​0 0 0 0 0 
Please Enter an Integer: 3
​SYS​0​2​51​499​494​0 0 0 0 0 3 
​CAL​0​6​6​493​494​0 0 0 0 0 3 
​INC​0​4​9​493​490​0 0 0 0 0 3 | 499 499 54 0 
​LIT​0​4​12​493​489​0 0 0 0 0 3 | 499 499 54 0 4 
​LIT​0​3​15​493​488​0 0 0 0 0 3 | 499 499 54 0 4 3 
​MUL​0​3​18​493​489​0 0 0 0 0 3 | 499 499 54 0 12 
​STO​1​4​21​493​490​0 0 0 0 12 3 | 499 499 54 0 
​LIT​0​14​24​493​489​0 0 0 0 12 3 | 499 499 54 0 14 
​LOD​1​4​27​493​488​0 0 0 0 12 3 | 499 499 54 0 14 12 
​LSS​0​7​30​493​489​0 0 0 0 12 3 | 499 499 54 0 0 
​JPC​0​39​39​493​490​0 0 0 0 12 3 | 499 499 54 0 
​LIT​0​5​42​493​489​0 0 0 0 12 3 | 499 499 54 0 5 
​RTN​0​0​54​499​494​0 0 0 0 12 3 
Output result is: 3
​SYS​0​1​57​499​495​0 0 0 0 12 
​SYS​0​3​60​499​495​0 0 0 0 12 
 
 
 
 
Appendix D
 
Helpful Tips
 
This function will be helpful to find a variable in a different Activation Record some L levels down:
 
/**********************************************/
/*​​Find base L levels down​​ */
/*​​​​​​​ */
/**********************************************/
 
int base( int BP, int L)
{
​int arb = BP;​// arb = activation record base
​while ( L > 0)     //find base L levels down
​{
​​arb = pas[arb];
​​L--;
​}
​return arb;
}
 
For example in the instruction:
 
STO L, M  - You can do stack [base (IR.L) +  IR.M]= pas[SP] to store the content of  the top of the stack into an AR in the stack,  located L levels down from the current AR.
 
Note1: we are working at the CPU level therefore the instruction format must have only 3 fields. Any program whose number of fields in the instruction format is graterthan 3 will get a zero.
 
Note2: If your program does not follow the specifications, your grade will get a zero.
 
Note3: if any of the instructions is implemented by calling a function, your grade will be zero.
 
Note4: If you use dynamic memory handling, your grade will be zero.
 
Note5: Pointers are not allowed, except to read a file.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp




​​​​​​​

掃一掃在手機打開當前頁
  • 上一篇:代寫指標 通達信【備戰(zhàn)龍妖】副圖指標
  • 下一篇:代寫 CMU 18-879、代做 Python 編程語言
  • ·CIV6782代做、代寫Python程序語言
  • ·CS305程序代做、代寫Python程序語言
  • ·代寫FN6806、代做c/c++,Python程序語言
  • ·代寫CS-UY 4563、Python程序語言代做
  • ·CE235編程代寫、代做python程序設計
  • ·COMP2010J代做、代寫c/c++,Python程序
  • ·COMP09110代做、代寫Python程序設計
  • ·&#160;COMP338編程代做、代寫Python程序語言
  • ·代寫MATH36031、Python程序設計代做
  • ·CDS523編程代寫、代做Python程序語言
  • 合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業(yè)
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗證碼 寵物飼養(yǎng) 十大衛(wèi)浴品牌排行 suno 豆包網(wǎng)頁版入口 wps 目錄網(wǎng) 排行網(wǎng)

    關于我們 | 打賞支持 | 廣告服務 | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權所有
    ICP備06013414號-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    国产精品对白一区二区三区| 欧美精品手机在线| 国产成人免费高清视频| 亚洲国产日韩欧美| 国产免费视频传媒| 国产精品久久久久久av| 欧美午夜精品久久久久久蜜| 久久偷窥视频| 欧美日本高清一区| 国产制服91一区二区三区制服| 久久久久久久久久久一区| 日韩在线观看a| 成年人网站国产| 欧美美最猛性xxxxxx| 热久久视久久精品18亚洲精品| 99re在线视频上| 欧美激情亚洲激情| 国产欧美一区二区| 久久成人18免费网站| 好吊色欧美一区二区三区四区| 久久精品日韩精品| 日韩av成人在线| 国产高清一区视频| 亚洲欧美日韩综合一区| 成人精品视频在线| 亚洲精品国产精品国自产| 99热国产免费| 亚洲成熟丰满熟妇高潮xxxxx| 高清亚洲成在人网站天堂| 欧美激情乱人伦一区| 高清欧美性猛交xxxx| 一级日韩一区在线观看| 97人人模人人爽人人喊中文字| 亚洲精品一品区二品区三品区| 91黄在线观看| 日本网站免费在线观看| 久久久久久久久久久91| 欧美性一区二区三区| 久久久精品久久| 国产在线精品一区二区三区》| 操人视频在线观看欧美| 国产精品在线看| 亚洲中文字幕无码专区| 国产大片精品免费永久看nba| 日本不卡在线播放| 俺去啦;欧美日韩| 免费特级黄色片| 久操成人在线视频| 草b视频在线观看| 午夜精品一区二区三区在线视 | 欧美激情精品久久久久久久变态 | 免费一区二区三区| 欧美激情精品久久久久久变态| www.av中文字幕| 日本免费久久高清视频| 精品国产欧美成人夜夜嗨| 欧美乱大交xxxxx潮喷l头像| 国产精品国语对白| www.av一区视频| 热久久这里只有| 精品久久久久久无码国产| 99在线视频免费观看| 人人做人人澡人人爽欧美| 精品国产乱码久久久久久丨区2区| 99久久伊人精品影院| 日韩国产精品一区二区| 欧美成年人网站| 国产福利精品在线| 精品无人区一区二区三区竹菊| 亚洲午夜精品久久久中文影院av| 久久久久免费精品| 国产日韩视频在线观看| 日韩在线xxx| 国产精品成人久久久久| 国产高清自拍一区| 国产欧美日韩最新| 日韩小视频在线播放| 久久777国产线看观看精品| 国产精品91在线观看| 国内精品国产三级国产99| 午夜精品99久久免费| 国产精品久久久久久av福利软件| 国产精品999999| 国产美女作爱全过程免费视频| 日韩欧美精品久久| 一本久道综合色婷婷五月| www.欧美三级电影.com| 97国产一区二区精品久久呦| 狠狠色狠狠色综合人人| 日本不卡一区二区三区视频| 一区二区三区国| 国产精品观看在线亚洲人成网| 国产成人在线亚洲欧美| 国产精品中文久久久久久久| 明星裸体视频一区二区| 三级三级久久三级久久18| 一本久道综合色婷婷五月| 久久av中文字幕| 国产精品男人爽免费视频1| 久久www视频| 久久久亚洲天堂| 国产日韩精品电影| 欧美在线免费观看| 色爱区成人综合网| 亚洲激情免费视频| 一道本在线观看视频| 久久成人一区二区| 国产精品免费一区二区三区四区 | 精品国模在线视频| 久久精品日产第一区二区三区精品版 | 精品一区二区三区免费毛片| 日本不卡一区二区三区四区| 午夜精品免费视频| 午夜在线视频免费观看| 亚洲国产精品一区二区第四页av| 中文字幕乱码人妻综合二区三区| 不卡伊人av在线播放| 久久精品福利视频| 日韩亚洲欧美成人| 日韩在线高清视频| 久久九九亚洲综合| 波霸ol色综合久久| 深夜福利一区二区| 日韩一区av在线| 日日骚久久av| 久久色精品视频| 国产精品久久久对白| 久久在线免费观看视频| 久久的精品视频| 欧美激情综合色| 亚洲视频小说| 色噜噜狠狠一区二区三区| 无码日韩人妻精品久久蜜桃| 午夜欧美大片免费观看| 亚洲国产精品久久久久爰色欲| 亚洲精品免费av| 色综合电影网| 秋霞毛片久久久久久久久| 欧美一区二区综合| 免费看成人午夜电影| 国产午夜福利视频在线观看| 国产乱淫av片杨贵妃| 91免费黄视频| 久久99国产精品99久久| 国产精品日韩三级| 中文字幕人成一区| 日韩av免费看| 欧美专区第一页| 精品欧美一区二区久久久伦 | 欧美尤物一区| 国产一区在线免费观看| 高清视频在线观看一区| 91精品国产91| 久久九九亚洲综合| 久久国产精品免费视频| 亚洲欧洲日韩精品| 日韩暖暖在线视频| 蜜桃传媒视频第一区入口在线看| 国产免费色视频| 91精品国产乱码久久久久久蜜臀 | 欧美激情中文网| 日本国产在线播放| 免费观看精品视频| 91av在线不卡| 国产精品久久77777| 午夜免费在线观看精品视频| 欧美日韩一区在线观看视频| 国产精品一区二区三区在线观| 久久久999视频| 欧美成人在线影院| 无码人妻aⅴ一区二区三区日本| 欧美激情 国产精品| 成人精品视频久久久久| 日韩在线观看免费高清| 亚洲午夜精品久久久中文影院av| 日韩无套无码精品| 国产女主播一区二区| 久久久久久久久久久久久久久久久久av | 亚洲成色www久久网站| 欧美一级电影久久| 成人精品在线视频| 国产精品视频在线播放| 亚洲一区美女| 国内精品视频在线| 国产黄色激情视频| 国产99视频精品免费视频36| 日本精品一区二区| 国产精品午夜国产小视频| 久久手机精品视频| 欧美一区二区三区……| 国产精品中文字幕在线观看| 久久精品中文字幕免费mv| 亚洲成人一区二区三区| 国产情侣av自拍| 国产精品视频久| 日本中文字幕不卡免费| 国产精品午夜一区二区欲梦| 国产精品欧美日韩久久| 日本a级片在线观看| 阿v天堂2017|