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 are inertial and non-inertial frame of references, Q. What are inertia...

Q. What are inertial and non-inertial frame of references? (i) Inertial (or) unaccelerated frames: Bodies in this frame follow Newton's law of intertia as well as othe

3D rotation, Magnify a triangle with vertices A = (0,0), B = (3,3) and C = ...

Magnify a triangle with vertices A = (0,0), B = (3,3) and C = (6,4) to twice its size in such a way that A remains in its original position.

Pervasive computing, Explain why pervasive computing can be termed as a “te...

Explain why pervasive computing can be termed as a “technology that disappears”

How is the connectivity established in verilog, How is the connectivity est...

How is the connectivity established in Verilog when connecting wires of different widths? When connecting wires or ports of different widths, connections are right-justified, S

C programming, Find out useless nonterminal symbols use c program.

Find out useless nonterminal symbols use c program.

What are the input devices, What are the Input devices Various devices ...

What are the Input devices Various devices are available for data input on graphics workstations. Most systems have a keyboard and one or more additional devices specially desi

Why erlang is used, Erlang is used to (A) Measure busy period         ...

Erlang is used to (A) Measure busy period                (B) Give total busy period in minutes (C)  Measure average call rate       (D) Indicate total call period Ans

naming convention in local scope variables, Description Variables show ...

Description Variables show values that can be changed within a procedure or function. Local scope variables are placeholders that reside within a function- or a script-body.

Comparator, 6 bit magnitude comparator

6 bit magnitude comparator

Work in standard view, Layout view is helpful for laying out Web pages. How...

Layout view is helpful for laying out Web pages. However you can adjust most of your design elements in Layout view, certain changes should be completed in Standard view. When you

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