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

What is structured programming, What is structured programming? Structu...

What is structured programming? Structured Programming: means the collection of principles and practices that are directed toward developing right programs which are simple to

Determine signed binary number, -8 is equal to which signed binary number ?...

-8 is equal to which signed binary number ? Ans. 10001000 is the signed binary number that equal to - 8.   To show negative numbers in the binary system, Digit 1 is utilized fo

Explain the working of a 2-bit digital comparator, Explain the working of a...

Explain the working of a 2-bit digital comparator with the help of Truth Table. Ans. Digital comparator is a combinational circuit which compares two numbers, A and B; and

Explain significance of init() & destroy( ) method of applet, Explain the s...

Explain the significance of init() and destroy( ) methods of an applet? Also explain two ways of invoking an applet. The init( ) method is utilized for fundamental initializati

Write heterogeneous functions, Write "heterogeneous" functions If a pro...

Write "heterogeneous" functions If a program uses simulated, dynamically allocated multidimensional arrays, it becomes possible to write "heterogeneous" functions which don't h

General principles of pruning, General principles of pruning: The gene...

General principles of pruning: The general principles are such that: 1. Given a node N that can be chosen by player one, thus if there is another node, X, along any path,

Explain collaboration on task and event management, What is difference betw...

What is difference between collaboration on task and event management? Web-based task management application let the user handle the multiple pieces and parts of large projects

Explain segmentation, Explain segmentation? Segment memory addressing ...

Explain segmentation? Segment memory addressing divides memory into many segments. Each of these segments can be considered as a linear memory space. Every one of these segmen

Indias parallel computers, Parallel Computers In India, the design and ...

Parallel Computers In India, the design and development of parallel computers in progress in the early 80?s. The Indian Government recognized the Centre for Development of Adva

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