Expert
3194 Order Completed 98 % Response Time 624 Reviews Since 2006

Best Programming Homework Helper in Leeds

Leeds, UK

Travis W

Masters in Computer Science, Leeds University

Profession

Programming homework helper in Leeds

Skills

I am a Leeds based programmer. Over the last 14 years, I have worked with students from top universities in the world, providing quality programming assignment help and ensuring that they score top grades. During this period, I have completed more than 3100 orders in Python. I know how programming can be challenging, and that is the reason I decided to dedicate my time to helping students. If you are looking for the best programming homework helper in Leeds, contact me today for quality and timely delivery.

Get Free Quote


 Your Order has been sent successfully. We will contact you as soon as possible.
Error: Please try again

Converting Temperature from Celsius to Fahrenheit in LC-3 Assembly Code  

For this lab, we will write the LC-3 assembly code to convert temperatures given in Celsius to Fahrenheit. We need to give relevant messages to the user to guide him in using the program, for this, we make use of the TRAP x22, which displays a string on the console. Also, we require reading input from the user one character at a time, we make this by using the TRAP x23, which reads on the character from the keyboard and saves it in R0. The characters given by the user are represented in ASCII, so we must convert them to numbers before we can use them, since we know that the character for zero ‘0’ in ASCII has a value of 48, we only need to subtract this value to the read character to get the actual value. On the other hand, if we wish to display a number between 0 and 9, we need to add the 48 before we can use the TRAP x21 to display it in the console. We have a main loop that prompts the user for a selection and reads a character, then we compare the read number with 1, 2, or 3 to see which option was selected, we use simple subtraction to make the comparison, if the subtraction is zero, then that was the option selected and we branch to the part that handles the option. We have three parts to handle the input from the user; the first one is called Conv, which is executed when the user selection is 1. In this option, we prompt the user again to input another number, which will be the value to convert to Fahrenheit.  In our approach, we decided to use a table to get the conversions from Celsius to Fahrenheit. The table that provides the conversion from the values 0 to 9 to the corresponding Fahrenheit temperatures is the following:


032
133
235
337
439
541
642
744
846
948


   Thus, the number given by the user is used as an offset on the table and we simply load the value from the given offset to get the conversion. The second part is called NoConv, which is executed when the user selects option 2. In this option, we also prompt the user to input a number but this time we don't make a conversion but simply print the input number on the console. In both the Conv and NoConv options, the converted number or the number given by the user, respectively, is saved at x3100. The last part is the EXIT, which is executed when the user selection is 3. In this case, we simply print a message and halt the program. The resulting program is included below: .ORIG x3000   ;set origin of program to x3000 LOOP   LEA R0, prompt; prompt for the user to select a number TRAP x22; trap to output the string TRAP x23; read a character LD R1,nascii0; load negative of ASCII 0 to convert the read character ADD R0, R0, R1; convert character to a number IF1    ADD R1, R0,#-1; see if the user entered a 1 BRz Conv; if it was 1, convert IF2    ADD R1, R0,#-2; see if the user entered a 2 BRz NoConv; if it was 2, do not convert IF3    ADD R1, R0,#-3; see if the user entered a 3 BRz EXIT; if it was a 3, exit Conv   LEA R0, ask temp; prompt for the user to give a temperature TRAP x22; trap to output the string TRAP x23; read a character LD R1,nascii0; load negative of ASCII 0 to convert the read character ADD R0, R0, R1; convert character to a number LEA R1, table; point to the conversion table with R1 ADD R1, R1, R0; add the required temperature as offset LDR R0,R1,#0  ; load value from the table STI R0, address; save the number in x3100 BR  LOOP Nov    LEA R0,asktemp; prompt for the user to give a temperature TRAP x22; trap to output the string TRAP x23; read a character LD R1,nascii0; load negative of ASCII 0 to convert the read character ADD R0, R0, R1; convert character to a number STI R0, address; save the number in x3100 LD  R1,ascii0; load ASCII 0 to convert the number for display ADD R0,R0,R1  ; convert to ascii TRAP x21; put the character on the console LD  R0, NL    TRAP x21; put the character on the console BR  LOOP EXIT   LEA R0,exitmsg       ; print exit message TRAP x22; trap to output the string HALT          ; halt the program prompt  .STRINGZ     "Enter 1 for converting to the Fahrenheit, 2 for no conversion, 3 for exit: " asktemp       .STRINGZ      "Enter the temperature in Celsius: " exitmsg       .STRINGZ      "Have a nice day" nl     .FILL  10     ; new line character nascii0       .FILL  -48    ; negative of ascii '0' ascii0 .FILL  48     ; ascii '0' address       .FILL  x3100  ; address to save conversions table  .FILL  32     ; conversion table .FILL 33 .FILL  35 .FILL  37 .FILL  39 .FILL  41 .FILL  42 .FILL  44 .FILL  46 .FILL  48 .END   A test using the input given in the assignment specification results in the following output: