
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Write the RISC-V assembly code to implement the following C code as an atomic “set max” operation using the lr.d/sc.d instructions. Here, the argument shvar contains the address of a shared variable which should be replaced by x if x is greater than the value it points to:
void setmax(int* shvar, int x) {
// Begin critical section
if (x > *shvar)
*shvar = x;
// End critical section
}
}
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution
Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 1 images

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Write the assembly code for the safe_input function in the C program given below. Name the file as safeinputfile.asm. #include <stdio.h> int safe_input(char *buffer, unsigned length ); int main(){ char buffer[32]; printf("Your name: "); fflush(stdout); safe_input(buffer,32); printf("Pleased to meet you, %s!\n",buffer); return 0;}arrow_forwardPlease your code should be in mips assembly languagearrow_forwardConsider: struct S7 { short m1; short m2; short m3; int m4 [12]; struct S7*next; }; int find_m4 (struct S7*p, int i) { return (&(p->m4[i])); } If we wrote find_m4() in x86-64 assembler, which instruction returns the correct value? O movl 8(%rdi, %rsi,4), %eax movq 6(%rdi, %rsi,8), %rax leaq 8(%rdi, %rsi,4), %rax leal 6(%rdi, %rsi,4), %eax None of thesearrow_forward
- Implement nibble_swap() function. Take in 4 byte integer and returns integer with swapped nibbles in first two bytes. Use a 3 bit register. The template below is for your reference. The code in the Assembly code portion needs to be completed in Assembly x86-64 #include extern "C" int nibble_swap(int var); int main(int avgc, char** avgs) { int v = nibble_swap(0xCAFEBABA); //answer: 0xACEFABAB printf("Swapped Variable is : 0%X \n", v); return 0; } ----------------Assembly Code --------------------------- ;yasm -f elf64 var.asm section .text global start : ;put ur code here retarrow_forwards. Convert the following C code to assembly language using vector operations. (Just do your best, make necessary assumptions, don't worry about syntax too much.) for (i-0;i <300; i++) { c_re[i] = a_re[i] b_re[i]-a_im[i] * b_im[i]: c_im[i] - a_re[i] b_im[i]+a_im[i] * b_re[i];arrow_forwardWrite the following C code in MIPS assembly, assume that all of result, in1 and in2 arrays are of double type, also assume var is a double type constant. for( i=0, i<100, i++) result[i] = in1[i]*in2[i] + var; %3D Also explain it well . Thank you!!arrow_forward
- The program below uses pointer arithmetic to determine the size of a 'char'variable. By using pointer arithmetic we can find out the value of 'cp' and thevalue of 'cp+1'. Since cp is a pointer, this addition involves pointer arithmetic:adding one to a pointer makes the pointer point to the next element of the sametype.For a pointer to a char, adding 1 really just means adding 1 to the address, butthis is only because each char is 1 byte.1. Compile and run the program and see what it does.2. Write some code that does pointer arithmetic with a pointer to an int anddetermine how big an int is.3. Same idea – figure out how big a double is, by using pointer arithmetic andprinting out the value of the pointer before and after adding 1.4. What should happen if you added 2 to the pointers from exercises 1through 3, instead of 1? Use your program to verify your answer.#include <stdio.h>int main( ){ char c = 'Z'; char *cp = &c; printf("cp is %p\n", cp); printf("The character at cp is…arrow_forwardHave a question requiring an answer in assembly languagearrow_forwardPlease written by computer sourcearrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education