String Assignment | Homework For You
Need help fixing this program in assembly language. Currently, the program takes a string from the user and reverses the string and converts the uppercase characters to lowercase and the lowercase characters to uppercase. It needs to be adjusted so that each upper-case letter is converted to the lower-case letter following it (eg ‘A’ will be converted to ‘b’ instead of ‘A’ being converted to ‘a’).
Sample Input/Output:
Enter a string of at most 128 characters: An Input Line!
Here it is, with all lowercases and uppercases flipped, and in reverse order:
!ENIm TUPNj Nb
There are 3 upper-case letters after conversion.
There are 14 characters in the string.
Program:
INCLUDE Irvine32.inc
INCLUDELIB Irvine32.lib
.data
input BYTE “Enter a string of at most 128 characters: “, 0
s DWORD 128 DUP(?)
sizeS DWORD ?
siz DWORD ?
input2 BYTE “Here it is, with all lowercases and uppercases flipped, and in reverse order: “, 0ah, 0dh, 0
sumL DWORD 0
input3 BYTE “There are “, 0
input4 BYTE ” upper-case letters after conversion.”, 0
input5 BYTE “There are “, 0
input6 BYTE ” characters in the string.”, 0
.code
main proc
mov edx, OFFSET input
call WriteString
mov edx, OFFSET s
mov ecx, 127
call ReadString
mov edx, OFFSET s
call StrLength
mov siz, eax
mov sizeS, eax
call crlf
mov edx, OFFSET input2
call WriteString
mov ebx, -1 ;decrementing ebx before incrementing it again in top
top :
dec sizeS
inc ebx
mov eax, sizeS
cmp eax, 0
jl next
mov esi, OFFSET s
add esi, eax
mov al, [esi]
cmp al, 32
jne l1
l1 :
cmp al, 65
jb o_r
cmp al, 90
ja o_r
add al, 32
call WriteChar
jmp top
o_r:
cmp al, 97
jb el
cmp al, 122
ja el
sub al, 32
call WriteChar
inc sumL
jmp top
el :
call WriteChar
jmp top
next :
call crlf
call crlf
mov edx, OFFSET input3
call WriteString
mov eax, sumL
call WriteInt
mov edx, OFFSET input4
call WriteString
call crlf
mov edx, OFFSET input5
call WriteString
mov eax, siz
call WriteInt
mov edx, OFFSET input6
call WriteString
exit
main endp
end main. Get Finance homework help today