Translate assembly language program to machine , Computer Engineering

Assignment Help:

A useful exercise in understanding assembly language and its relation to machine language is to take a short assembly language program and translate it to machine language by hand.

The following program, countbits, counts the number of bits set to 1 in registers $4 and returns the result in register $6.

main: li $10, 32 # set up loop counter

li $6, 0 # clear output sum

main10: andi $12, $11, 1 # test current bit

beq $12, $0, main20 # skip count if not set

addi $6, $6, 1 # otherwise increment count

main20: srl $11, $11, 1 # shift input right

addi $10, $10, -1 # decrement count

bne $10, $0, main10 # continue until zero

li $2, 10 # Halt code

syscall

Translate this program to machine code by hand, explaining for each line how you worked out the machine instruction.

Although it might be tempting to simply let the SPIM assembler do this, the exercise is useful way of learning the MIPS instruction formats. Refer to Appendix B (Assemblers, Linkers and the SPIM simulator) of the text (4th Edition ) for descriptions of MIPS assembly language instructions and the corresponding machine codes.


Related Discussions:- Translate assembly language program to machine

Computer, How does computer started?

How does computer started?

What is microcomputers, Q. What is Microcomputers? Microcomputers have ...

Q. What is Microcomputers? Microcomputers have become a common part of everyday life. The cost ranging from a few hundred to about ten thousand dollars, today's 16- and 32-bi

What is blocking probability, What is blocking probability? Blocking ...

What is blocking probability? Blocking Probability: The blocking probability P is described as the probability like all the servers in system are busy. If all the servers ar

#titlecompiler design.., c program for converting context free grammar to g...

c program for converting context free grammar to griebach normal form

What happens if acknowledge() is called within a transaction, As per the JM...

As per the JMS specification, when you are in a transaction, the acknowledge Mode is ignored. If acknowledge() is known as within a transaction, it is ignored.

Systems analyst in traditional business, Q. Systems Analyst in Traditional ...

Q. Systems Analyst in Traditional Business? In the traditional business information services are centralized for entire organization or for a specific location. In this organiz

what is lrd_stmt?, The lrd_stmt function associates a character string (ge...

The lrd_stmt function associates a character string (generally a SQL statement) with a cursor. This function sets a SQL statement to be processed.

Subtraction of 01000-01001 using 2's complement method, Subtraction of 0100...

Subtraction of 01000-01001 using 2's complement method. Ans. Firstly 1's complement of 01001 is 10110 and 2's complement is 10110+ 1 =10111. Thus   01000 =  01000 - 01001

Signaling - universal serial bus , Signaling - Universal Serial Bus: U...

Signaling - Universal Serial Bus: USB supports following signaling rates: o   A low speed rate of 1.5 Mbit/s is defined by USB 1.0. This is so much similar to "full speed"

Performance analysis, In order to calculate the performance of the program,...

In order to calculate the performance of the program, the normal form of analysis of the program is to simply measure the total amount of CPU time needed to implement the various p

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