Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

An example of one such list is: 26, 18, 22, 20, 13, 22, 19, 22, 20, 27, 18, 24,

ID: 3728721 • Letter: A

Question

An example of one such list is: 26, 18, 22, 20, 13, 22, 19, 22, 20, 27, 18, 24, 15, 28, 26, 27, 20, 21, 23, 24, 27, 26, 15, 23, 22, 20, 23, 17, 18, 18

This the code to find how many times a given temperature is strictly exceeded. The user should be able to enter the list (including its size), and then the target number that he/she wishes to inspect. As an example, for the list given above, if the target is 25, the answer should be 7; if the target is 27, the answer should be 1, and the program would print 0 for target 28.

Translate the python code to MIPS

Explanation / Answer

.LC0:

.string "How many temperature do you want to enter?:"

.LC1:

.string "enter temperature:"

.LC2:

.string " "

.LC3:

.string " Enter target tempertaure:"

.LC4:

.string "Number of temperature above"

.LC5:

.string "are"

main:

push rbp

mov rbp, rsp

sub rsp, 432

mov DWORD PTR [rbp-8], 0

mov esi, OFFSET FLAT:.LC0

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

lea rax, [rbp-420]

mov rsi, rax

mov edi, OFFSET FLAT:std::cin

call std::basic_istream<char, std::char_traits<char> >::operator>>(int&)

mov esi, OFFSET FLAT:.LC1

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

mov DWORD PTR [rbp-4], 0

.L3:

mov eax, DWORD PTR [rbp-420]

cmp DWORD PTR [rbp-4], eax

jge .L2

lea rax, [rbp-416]

mov edx, DWORD PTR [rbp-4]

movsx rdx, edx

sal rdx, 2

add rax, rdx

mov rsi, rax

mov edi, OFFSET FLAT:std::cin

call std::basic_istream<char, std::char_traits<char> >::operator>>(int&)

mov esi, OFFSET FLAT:.LC2

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

add DWORD PTR [rbp-4], 1

jmp .L3

.L2:

mov esi, OFFSET FLAT:.LC3

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

lea rax, [rbp-424]

mov rsi, rax

mov edi, OFFSET FLAT:std::cin

call std::basic_istream<char, std::char_traits<char> >::operator>>(int&)

mov esi, OFFSET FLAT:.LC2

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

mov DWORD PTR [rbp-4], 0

.L6:

mov eax, DWORD PTR [rbp-420]

cmp DWORD PTR [rbp-4], eax

jge .L4

mov eax, DWORD PTR [rbp-4]

cdqe

mov edx, DWORD PTR [rbp-416+rax*4]

mov eax, DWORD PTR [rbp-424]

cmp edx, eax

jle .L5

add DWORD PTR [rbp-8], 1

.L5:

add DWORD PTR [rbp-4], 1

jmp .L6

.L4:

mov esi, OFFSET FLAT:.LC4

mov edi, OFFSET FLAT:std::cout

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

mov rdx, rax

mov eax, DWORD PTR [rbp-424]

mov esi, eax

mov rdi, rdx

call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)

mov esi, OFFSET FLAT:.LC5

mov rdi, rax

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

mov rdx, rax

mov eax, DWORD PTR [rbp-8]

mov esi, eax

mov rdi, rdx

call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)

mov eax, 0

leave

ret

__static_initialization_and_destruction_0(int, int):

push rbp

mov rbp, rsp

sub rsp, 16

mov DWORD PTR [rbp-4], edi

mov DWORD PTR [rbp-8], esi

cmp DWORD PTR [rbp-4], 1

jne .L10

cmp DWORD PTR [rbp-8], 65535

jne .L10

mov edi, OFFSET FLAT:std::__ioinit

call std::ios_base::Init::Init()

mov edx, OFFSET FLAT:__dso_handle

mov esi, OFFSET FLAT:std::__ioinit

mov edi, OFFSET FLAT:std::ios_base::Init::~Init()

call __cxa_atexit

.L10:

nop

leave

ret

_GLOBAL__sub_I_main:

push rbp

mov rbp, rsp

mov esi, 65535

mov edi, 1

call __static_initialization_and_destruction_0(int, int)

pop rbp

ret

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote