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

Define digital computers system, Q. Define Digital computers system? Di...

Q. Define Digital computers system? Digital computers, in general, are automatic machines that accept data and instructions, perform predefined operations very quickly on the d

Explain the technique used in asymmetric key cryptography, Explain the tech...

Explain the technique used in the asymmetric Key Cryptography. Asymmetric or public-key cryptography be different from conventional cryptography in which key material is bound

What are the touch panels, What are the Touch Panels In case of touch p...

What are the Touch Panels In case of touch panels, displayed objects or screen positions is allowed to be selected with the touch of a finger. A typical application of touch pa

Divide two binary numbers, Divide (101110) 2   by (101) 2 Ans. Qu...

Divide (101110) 2   by (101) 2 Ans. Quotient is = -1001 Remainder is = -001

Explain about param super computer, Q. Explain about PARAM Super computer? ...

Q. Explain about PARAM Super computer? PARAM is a high-performance, industry standard and scalable computer. It has developed from concepts of distributes scalable computers ma

Superscalar processors, Superscalar Processors In scalar processors, on...

Superscalar Processors In scalar processors, only one instruction is implemented per cycle. That means only single instruction is issued per cycle and only single instruction i

Procedure which divides a 32-bit number by a 16-bit number, Write a procedu...

Write a procedure which divides a 32-bit number by a 16-bit number. The procedure must be general which is it's defined in one module and can be called from another assembly module

What do you mean by memory mapped i/o, What do you mean by memory mapped I/...

What do you mean by memory mapped I/O? In Memory mapped I/O, there is no particular input or output instructions. The CPU can manipulate I/O data residing in interface register

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