CS 271 Computer Architecture and Assembly Language Programming Assignment #6
Designing, implementing, and calling low-level I/O procedures
Implementing and using a macro
Implement and test your own ReadVal and WriteVal procedures for signed
Implement macros getString and displayString. The macros may use Irvine’s ReadString to get input from the user, and WriteString to display
getString should display a prompt, then get the user’s keyboard input into a memory location
displayString should print the string which is stored in a specified memory
readVal should invoke the getString macro to get the user’s string of digits. It should then convert the digit string to numeric, while validating the user’s
writeVal should convert a numeric value to a string of digits, and invoke the displayString
macro to produce the output.
Write a small test program that gets 10 valid integers from the user and stores the numeric values in an array. The program then displays the integers, their sum, and their
We will be testing this program with positive and negative
User’s numeric input must be validated the hard way: Read the user's input as a string, and convert the string to numeric form. If the user enters non-digits other than something which will indicate sign (e.g. ‘+’ or ‘-‘), or the number is too large for 32-bit registers, an error message should be displayed and the number should be
Conversion routines must appropriately use the lodsb and/or stosb
All procedure parameters must be passed on the system
Addresses of prompts, identifying strings, and other memory locations should be passed by address to the
Used registers must be saved and restored by the called procedures and
The stack must be “cleaned up” by the called
The usual requirements regarding documentation, readability, user-friendliness, etc.,
Submit your text code file (.asm) to Canvas by the due
For this assignment, you are allowed to assume that the total sum of the numbers will fit inside a 32 bit register.
When displaying the average, you may round down to the nearest For example if the sum of the 10 numbers is 3568 you may display the average as 356.
Example (user input in italics):
PROGRAMMING ASSIGNMENT 6: Designing low-level I/O procedures Written by: Sheperd Cooper
Please provide 10 signed decimal integers.
Each number needs to be small enough to fit inside a 32 bit register. After you have finished inputting the raw numbers I will display a list of the integers, their sum, and their average value.
Please enter a signed number: 156
Please enter a signed number: 51d6fd
ERROR: You did not enter a signed number or your number was too big. Please try again: 34
Please enter a signed number: -186
Please enter a signed number: 115616148561615630
ERROR: You did not enter an signed number or your number was too big. Please try again: -145
Please enter a signed number: 5 Please enter a signed number: +23 Please enter a signed number: 51 Please enter a signed number: 0 Please enter a signed number: 56 Please enter a signed number: 11
You entered the following numbers:
156, 34, -186, -145, 5, 23, 51, 0, 56, 11
The sum of these numbers is: 5 The rounded average is: 1
Thanks for playing!
1 point: number each line of user input and display a running subtotal of the user’s
3 points: implement procedures ReadVal and WriteVal for floating point values, using the
To ensure you receive credit for any extra credit options you did, you must add one print statement to your program output PER EXTRA CREDIT which describes the extra credit you chose to work on. You will not receive extra credit points unless you do this. The statement must be formatted as follows...
--Program prompts, etc—
DescriptionIn this final assignment, the students will demonstrate their ability to apply two majorconstructs of the C programming language – Fu
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of