Write an assembly program that will read in a person\'s name and then print it i
ID: 3768226 • Letter: W
Question
Write an assembly program that will read in a person's name and then print it in lastname, firstname [middle name] order. The notation [middle name] means zero or more middle names. For example using an input of: John James Smith You will print Smith, John James You will need to write a procedure that will read in characters until the enter key is pressed. Store the characters in an array of characters defined in your data segment. As you read the characters you will need to count the number of characters entered by the user, this may also be stored in a data segment variable. The maximum length of a name will be 80 characters. You will then need to start at the right end of the name and search backwards for a blank. At this point you can now print out the last name a comma and go back to the beginning of the array and print the rest of the name. Make sure to properly test you program before submitting it. You should test single names such as Rihanna, no name (hit enter key immediately), names with no middle name, and also multiple middle names.Explanation / Answer
.MODEL SMALL .STACK 100H .DATA MSG_1 EQU 'Enter three initials : $' MSG_2 EQU 0DH,0AH,'The initials are :',0DH,0AH,'$' MSG_3 EQU 0DH,0AH,'$' PROMPT_1 DB MSG_1 PROMPT_2 DB MSG_2 NEWLINE DB MSG_3 .CODE MAIN PROC MOV AX, @DATA ; initialize DS MOV DS, AX LEA DX, PROMPT_1 ; load and display PROMPT_1 MOV AH, 9 INT 21H MOV AH, 1 ; read first initial INT 21H MOV BL, AL ; save the first initial into BL MOV AH, 1 ; read second initial INT 21H MOV BH, AL ; save the second initial into BH MOV AH, 1 ; read third initial INT 21H MOV CL, AL ; save the third initial into CL LEA DX, PROMPT_2 ; load and display PROMPT_2 MOV AH, 9 INT 21H MOV AH, 2 ; display the first initial MOV DL, BL INT 21H LEA DX, NEWLINE ; display new line MOV AH, 9 INT 21H MOV AH, 2 ; display the second initial MOV DL, BH INT 21H LEA DX, NEWLINE ; display new line MOV AH, 9 INT 21H MOV AH, 2 ; display the third initial MOV DL, CL INT 21H MOV AH, 4CH ; return control to DOS INT 21H MAIN ENDP END MAIN
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.