
Given assembly code:
# long sum_col(long n, long A[NR(n)][NC(n)], long j)
# n in %rdi, A in %rsi, j in %rdx
sum_col:
leaq 1(,%rdi,4), %r8
leaq (%rdi,%rdi,2), %rax
movq %rax, %rdi
testq %rax, %rax
jle .L4
salq $3, %r8
leaq (%rsi,%rdx,8), %rcx
movl $0, %eax
movl $0, %edx
.L3:
addq (%rcx), %rax
addq $1, %rdx
addq %r8, %rcx
cmpq %rdi, %rdx
jne .L3
rep
ret
.L4:
movl $0, %eax
ret
Load Effective Address:
- The load effective address instruction “leaq” is a variant of “movq” instruction.
- The instruction form reads memory to a register, but memory is not been referenced at all.
- The first operand of instruction is a memory reference; the effective address is been copied to destination.
- The pointers could be generated for later references of memory.
- The common arithmetic operations could be described compactly using this instruction.
- The operand in destination should be a register.
Data movement instructions:
- The different instructions are been grouped as “instruction classes”.
- The instructions in a class performs same operation but with different sizes of operand.
- The “Mov” class denotes data movement instructions that copy data from a source location to a destination.
- The class has 4 instructions that includes:
- movb:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 1 byte data size.
- movw:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 2 bytes data size.
- movl:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 4 bytes data size.
- movq:
- It copies data from a source location to a destination.
- It denotes an instruction that operates on 8 bytes data size.
- movb:
Comparison Instruction:
- The “CMP” instruction sets condition code according to differences of their two operands.
- The working pattern is same as “SUB” instruction but it sets condition code without updating destinations.
- The zero flag is been set if two operands are equal.
- The ordering relations between operands could be determined using other flags.
- The “cmpl” instruction compares values that are double word.
Unary and Binary Operations:
- The details of unary operations includes:
- The single operand functions as both source as well as destination.
- It can either be a memory location or a register.
- The instruction “incq” causes 8 byte element on stack top to be incremented.
- The instruction “decq” causes 8 byte element on stack top to be decremented.
- The details of binary operations includes:
- The first operand denotes the source.
- The second operand works as both source as well as destination.
- The first operand can either be an immediate value, memory location or register.
- The second operand can either be a register or a memory location.

Want to see the full answer?
Check out a sample textbook solution
Chapter 3 Solutions
Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
- Given the following addresses, which two addresses conflict in the cache: The numb of locations in the cache is 2048, the cahche is indexed by address bits 15 to 5 and the tag bits are from 31 to 16. (a) 0x0000 0100 (b) 0x0000 1400 (c) 0x0010 0100 (d) 0x0100 0140arrow_forward5. RetailItem ClassWrite a class named RetailItem that holds data about an item in a retail store. The class should store the following data in attributes: item description, units in inventory, and price. Once you have written the class, write a program that creates three RetailItem objects and stores the following data in them: Description Units in Inventory PriceItem #1 Jacket 12 59.95Item #2 Designer Jeans 40 34.95Item #3 Shirt 20 24.95arrow_forwardWrite a class named Patient that has attributes for the following data: First name, middle name, and last name Address, city, state, and ZIP code Phone number Name and phone number of emergency contact The Patient class’s _ _init_ _ method should accept an argument for each attribute. The Patient class should also have accessor and mutator methods for each attribute. Next, write a class named Procedure that represents a medical procedure that has been performed on a patient. The Procedure class should have attributes for the following data: Name of the procedure Date of the procedure Name of the practitioner who performed the procedure Charges for the procedure The Procedure class’s _ _init_ _ method should accept an argument for each attribute. The Procedure class should also have accessor and mutator methods for each attribute. Next, write a program that creates an instance of the Patient class, initialized with sample data. Then, create three instances of the Procedure class,…arrow_forward
- 1 Vo V₁ V3 V₂ V₂ 2arrow_forwardI want a full report on Sperani security according to Project Mingment.arrow_forwardGiven a 8-bit addressable (256) locations in memory and 32 locations in cache, 3 bits are in the cache Tag. What is the cache location for memory address of 0x0100 0100? Provide the answer in decimal form.arrow_forward
- Q2: Solve the equation using the simplex method Max. Z 13x1 +11x2 Subject to constraints 4x1 +5x21500 5x1 +3x21575 x1 +2x2 <420 x1, x2≥0arrow_forwardBasically, you must build a desktop/android application that utilizes cryptographic techniques/protocols to secure communication (or data at rest). Try to achieve confidentiality, integrity, availability, authentication, non-repudiation (preferably all of them, otherwise few of them based on the requirement).You must demonstrate the use of these cryptographic techniques by showing some outputs/visualization results or captured traffic such as through Wireshark.1. Secure Chat ApplicationDescription: Build an encrypted chat application for desktop or Android that ensures confidentiality, integrity, authentication, and non-repudiation.Features:-- End-to-end encryption using AES-256 or Signal Protocol.--Digital signatures for non-repudiation.--Message integrity verification using HMAC.Secure login using two-factor authentication (2FA).--Server-side availability mechanisms (e.g., load balancing, backup storage). Technologies: Python (PyQt + PyCryptodome), Java (Android), Firebase for…arrow_forwardQ1: Draw the equation of z with constraints according to the graphic method Max Z-3 P1+5 P2 s.t. P1 4 P2 6 3 P1+2 P2 <18 P1, P2 20arrow_forward
- Many employees and suppliers are resistant to adopting the new e-procurement system. They are accustomed to traditional procurement methods and are hesitant to embrace the change. How would you effectively manage this resistance and ensure a smooth transition to the new system?arrow_forwardswitch status (learning, listening, for wording) Write a detailed explanation of the topic. networkarrow_forwardSolve thisarrow_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





