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 effective address, Q. What is Effective Address ? The symbol EA...

Q. What is Effective Address ? The symbol EA (Effective Address) refers to a physical address in a non-virtual memory environment and refers to a register in a virtual memory a

Define electronic data interchange, Electronic Data Interchange (EDI ) is u...

Electronic Data Interchange (EDI ) is used by companies for transactions that happen on regular basis to a pre-determined format. It is one of the electronic commerce technologies.

Cross bar-various interconnection networks-fully connected, Cross Bar ...

Cross Bar The crossbar network is the easiest interconnection network. It has a two dimensional grid of switches.  It is a non-blocking network and give connectivity among inp

Identify the process of entering data into a ROM, The process of entering d...

The process of entering data into a ROM is called ? Ans. The process of entering data in ROM is termed as programming the ROM.

Find the nyquist rate, Find the Nyquist rate for the following signals: (a)...

Find the Nyquist rate for the following signals: (a) x(t) = 5 sin 3000πt cos 4000πt (b) A binary channel with bit rate 36000 bps is available for PCM voice transmission. Fi

Explain the race condition, Explain the Race Condition The situation wh...

Explain the Race Condition The situation where various processes access - and manipulate shared data concurrently. The final value of the shared data relies upon which process

What is recursing downwards, What is recursing downwards? And its ways. ...

What is recursing downwards? And its ways. The design process generally works top-down; you start with the higher level operations and proceed to describe lower level operation

Common problem with hill climbing, Common problem with Hill climbing: ...

Common problem with Hill climbing: An alternative way of justifying the problem is that the states are boards with 8 queens already on them, so an action is a movement of one

What is hamiltonian path, What is Hamiltonian path?  A Hamiltonian path...

What is Hamiltonian path?  A Hamiltonian path in a directed graph G is a directed path that goes through every node exactly once. We consider a special case of this problem whe

What are the important tools of a three-tier client server, What are the im...

What are the important tools of a three-tier client server? In a three-tier or multi-tier environment, there the client implements the presentation logic or the client. The bus

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