A.
Assembly code for Conditional jump:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
jle pos
rrmovq %r11, %r10
pos:
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Assembly code for Conditional move:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
cmovg %r11, %r10
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Processing stages:
- The processing of an instruction has number of operations.
- The operations are organized into particular sequence of stages.
- It attempts to follow a uniform sequence for all instructions.
- The description of stages are shown below:
- Fetch:
- It uses program counter “PC” as memory address to read instruction bytes from memory.
- The 4-bit portions “icode” and “ifun” of specifier byte is extracted from instruction.
- It fetches “valC” that denotes an 8-byte constant.
- It computes “valP” that denotes value of “PC” plus length of fetched instruction.
- Decode:
- The register file is been read with two operands.
- It gives values “valA” and “valB” for operands.
- It reads registers with instruction fields “rA” and “rB”.
- Execute:
- In this stage the ALU either performs required operation or increments and decrements stack pointer.
- The resulting value is termed as “valE”.
- The condition codes are evaluated and destination register is updated based on condition.
- It determines whether branch should be taken or not in a jump instruction.
- Memory:
- The data is been written to memory or read from memory in this stage.
- The value that is read is determined as “valM”.
- Write back:
- The results are been written to register file.
- It can write up to two results.
- PC update:
- The program counter “PC” denotes memory address to read bytes of instruction from memory.
- It is used to set next instruction’s address.
- Fetch:
B.
Assembly code for Conditional jump:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
jle pos
rrmovq %r11, %r10
pos:
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Assembly code for Conditional move:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
cmovg %r11, %r10
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Processing stages:
- The processing of an instruction has number of operations.
- The operations are organized into particular sequence of stages.
- It attempts to follow a uniform sequence for all instructions.
- The description of stages are shown below:
- Fetch:
- It uses program counter “PC” as memory address to read instruction bytes from memory.
- The 4-bit portions “icode” and “ifun” of specifier byte is extracted from instruction.
- It fetches “valC” that denotes an 8-byte constant.
- It computes “valP” that denotes value of “PC” plus length of fetched instruction.
- Decode:
- The register file is been read with two operands.
- It gives values “valA” and “valB” for operands.
- It reads registers with instruction fields “rA” and “rB”.
- Execute:
- In this stage the ALU either performs required operation or increments and decrements stack pointer.
- The resulting value is termed as “valE”.
- The condition codes are evaluated and destination register is updated based on condition.
- It determines whether branch should be taken or not in a jump instruction.
- Memory:
- The data is been written to memory or read from memory in this stage.
- The value that is read is determined as “valM”.
- Write back:
- The results are been written to register file.
- It can write up to two results.
- PC update:
- The program counter “PC” denotes memory address to read bytes of instruction from memory.
- It is used to set next instruction’s address.
- Fetch:
C.
Assembly code for Conditional jump:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
jle pos
rrmovq %r11, %r10
pos:
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Assembly code for Conditional move:
long absSum(long *start, long count)
start in %rdi, count in %rsi
absSum:
irmovq $8, %r8
irmovq $1, %r9
xorq %rax, %rax
andq %rsi, %rsi
jmp test
loop:
mrmovq (%rdi),%r10
xorq %r11, %r11
subq %r10, %r11
cmovg %r11, %r10
addq %r10, %rax
addq %r8, %rdi
subq %r9, %rsi
test:
jne loop
ret
Processing stages:
- The processing of an instruction has number of operations.
- The operations are organized into particular sequence of stages.
- It attempts to follow a uniform sequence for all instructions.
- The description of stages are shown below:
- Fetch:
- It uses program counter “PC” as memory address to read instruction bytes from memory.
- The 4-bit portions “icode” and “ifun” of specifier byte is extracted from instruction.
- It fetches “valC” that denotes an 8-byte constant.
- It computes “valP” that denotes value of “PC” plus length of fetched instruction.
- Decode:
- The register file is been read with two operands.
- It gives values “valA” and “valB” for operands.
- It reads registers with instruction fields “rA” and “rB”.
- Execute:
- In this stage the ALU either performs required operation or increments and decrements stack pointer.
- The resulting value is termed as “valE”.
- The condition codes are evaluated and destination register is updated based on condition.
- It determines whether branch should be taken or not in a jump instruction.
- Memory:
- The data is been written to memory or read from memory in this stage.
- The value that is read is determined as “valM”.
- Write back:
- The results are been written to register file.
- It can write up to two results.
- PC update:
- The program counter “PC” denotes memory address to read bytes of instruction from memory.
- It is used to set next instruction’s address.
- Fetch:
Want to see the full answer?
Check out a sample textbook solutionChapter 4 Solutions
EBK COMPUTER SYSTEMS
- -0 e @ -13- DC Current in the & resistance is = I, - Iz =0-4545-004545 am EX (2.2): Find the current in the 8sh resistance. 4 ww 0770 709 0568 10V. M ДАД -20V FISVarrow_forward2. Jane, Jill, and Jenny have formed a band consisting of 3 instruments. (a) If each of them can play all 3 instruments, how many different arrangements are possible? (b) What if Jane can play all 3 instruments, but Jill and Jenny can each play only piano and drums?arrow_forward4. A person has 9 friends, of whom 5 will be invited to a party. (a) How many choices are there if 2 of the friends are feuding and will not attend together? (b) How many choices if 2 of the friends will only attend together?arrow_forward
- 5. There are 3 people in a room, and we are curious whether two of them have their birthday in the same month. We record the triplet that describes the month of birthday for each person. E.g., (Oct, Jan, Jul) is one possible triplet/outcome. (Since each month applies to a specific person, (Oct, Jan, Jul) is not the same as (Jan, Jul, Oct), so order is important.) (a) How many possible outcomes are there? (b) In how many of these outcomes do all three people have their birthday in different months? (c) In how many of these outcomes do at least two people have their birthday in the same month?arrow_forward1. We have 8 blocks, of which 4 are green, 2 are red, 1 is white, and 1 is black. If we put the blocks in a line, how many arrangements are possible?arrow_forward3. (a) In how many ways can 3 cats and 3 dogs sit in a row? (b) In how many ways can 3 cats and 3 dogs sit in a row if the cats and the dogs are each to sit together? (c) In how many ways if only the cats must sit together? (d) In how many ways if no two animals of the same type are allowed to sit together?arrow_forward
- the gate level and the transistor level for a certain circuit are given below. Select from the given options for each space the variable name such that the transistor level design matches the gate level design. $1 => S2= M- W $3= |S4 = $5= J -R S1. S2- R S5 S3 S4arrow_forwardGiven that W, L. and tox are scaled with a scaling factor J, Vth and Vad are scaled with a scaling factor P Taking these scaling factors into consideration what is the scaling factor for metric X that equals loN C where loN is the on current of the transistor and C is the gate capacitance of the transistor. O p²/j2 O 1/P O J/P O 1/J2 O P/J2 O 1/(JP) O 1/p2 O P/J O 1/J2 O None of the other optionsarrow_forwardpython Tasks 7 • Task 1: Add a new class 'Moon` that inherits from `CelestialBody' and has an additional attribute `parent_planet. Write a method to display the moon's details along with its parent planet. • Task 2: Modify the 'Galaxy' class to calculate the total mass of all celestial bodies it contains. Implement a method `total_mass() for this purpose. • Task 3: Create a class 'BlackHole` that inherits from `Celestial Body` and adds properties like event_horizon_radius' and 'spins. Implement a method to display black hole details. • Task 4: Develop a simulation where a user can create multiple galaxies and display their celestial bodies in a hierarchical format using inheritance. 10/06/1446arrow_forward
- Please solve q2arrow_forwardself.sAge = age super().__init_("Rahul", age) # inheriting the properties of def displayInfo(self): print(self.sName, self.sAge) obj = Student("Mayank", 23) obj.display() obj.displayInfo() parent class we created the object 'obj' of the child class. When we called the constructor of the child class 'Student', it initialized the data members to the values passed during the object creation. Then using the super() function, we invoked the constructor of the parent class. Asst.L. Manar Hamza Bashaa 2024-2arrow_forwardObject-oriented programming tion defines a new type of that class. Lec 7: Static Members Object-Oriented Programming Assignment: Create a class named StudentRecords and add a static variable named records, which is a list shared among all objects of the class. Then add a method named add_record that takes a student's name as input and appends it to the shared records list.arrow_forward
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY