Implement an assembly language program, Assembly Language

Assignment Help:

A good starting point for your program is the toupper.asm program shown in class. It already queries the user for input and sets up a loop that looks at each character of the input. The source code for toupper.asm 

The bytes entered by the user are ASCII characters. You should convert this to a numerical digit by subtracting the character '0'.

Recall that the last character might be an X and represents the value 10. You will need to special case this. For simplicity, let's not worry about an X appearing in the middle of the input.

You should set up your loop to iterate 10 times and NOT for the length of the string (as is done in toupper.asm) because that will include the newline character at the end of the user input.

Since all the numbers are small, you can use the 8-bit portions of the general purpose registers: AH, AL, BH, BL, CH, CL, DH and DL. This is convenient because you have more registers to play with and because you won't have to mix 8-bit and 32-bit arithmetic.

Develop your program incrementally. After each step, use the debugger to check that you have accomplished the desired goal.

Set up the loop to iterate 10 times, each time storing the next character in an 8-bit register (say AL).

Convert AL into a "number".

Add the special case where AL might be X.

Compute t in another 8-bit register.

Compute t % 11.

Compute sum % 11 in another 8-bit register.

Print out the correct message to the user.

Extra Credit

For 10 points extra credit, submit a separate assembly language program that prints out the value of the check digit given the first 9 digits of an ISBN number. A sample run of your program might look like:

linux2% ./a.out

Enter first 9 digits of ISBN #: 320154197

Check digit: 4

linux2%

linux2% ./a.out

Enter first 9 digits of ISBN #: 045777370

Check digit: 7

linux2%

linux2% ./a.out

Enter first 9 digits of ISBN #: 044101125

Check digit: X

linux2%


Related Discussions:- Implement an assembly language program

Queue operation-microprocessor, Queue Operation :   RQ/CT0, RQ...

Queue Operation :   RQ/CT0, RQ/G1-Request/Grant:   These pins are utilized by other local bus masters, in themaximum mode, to force the processor to release the loca

8086 assembly language program, move a byte string ,16 bytes long from the ...

move a byte string ,16 bytes long from the offset 0200H to 0300H in the segment 7000H

Ror-logical instruction-microprocessor, ROR : Rotate Right without Carry: ...

ROR : Rotate Right without Carry: This instruction rotates the contents of destination operand to the bit-wise right either by one or by the count specified in register CL, exclud

Declare a constant in assembly language, Declare 1 constant. This can be do...

Declare 1 constant. This can be done just below the prototype section. Put the following divider above the constant section. ;************************ Constants ****************

Assignment, Write an assembly program that adds the elements in the odd ind...

Write an assembly program that adds the elements in the odd indices of the following array. Use LOOP. What is the final value in the register?

Implement an assembly language program, A good starting point for your prog...

A good starting point for your program is the toupper.asm program shown in class. It already queries the user for input and sets up a loop that looks at each character of the input

Program, Write an application that does the following: (1) fill an array wi...

Write an application that does the following: (1) fill an array with 50 random integers; (2) loop through the array, displaying each value, and count the number of negative values;

Tabular comparison for micro processors parameters, Tabular comparison for ...

Tabular comparison for µ PS' Parameters Tables (a) and (b) list the characteristic of Intel microprocessor. Table(a):   Table(b): It has a 64 bit da

Program to move string from offset-assembly program, Program : A program t...

Program : A program to move a string of the data words from offset 2000H to offset 3000H the length of the string is OFH. Solution : For writing this program, we will use

Can you write this Program for me please? , $NOMOD51 $NOSYMBOLS ;**********...

$NOMOD51 $NOSYMBOLS ;***************************************************************************** ; Spring 2013 Project ; ; FILE NAME : Project.ASM ; DATE : 3/30/20

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd