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

Explain criteria for selection of suitable intermediate code, Pass I of the...

Pass I of the assembler must also generate the intermediate code for the processed statements. Justify your answer. Criteria for selection of a suitable intermediate code form

Clocked sr flip flop, Clocked SR flip flop A clock pulse is a...

Clocked SR flip flop A clock pulse is a sequence of logic 0, logic 1, and logic 0 occuring on the CLK input. Time t n occurs before the clock pulse and time t n+1

Explain loop-invariant code motion, Explain briefly Loop-invariant code ...

Explain briefly Loop-invariant code motion of the commonly used code optimization techniques. Loop-invariant code motion If a quantity is calculated inside a loop duri

What is null pointer, What is NULL POINTER Inside main, a FILE * called...

What is NULL POINTER Inside main, a FILE * called file. Afterwards, the fopen function, passing it the path to data file, as well as "r", only intending to read from the file.

Measure of speed in page or line printer, Q. Measure of speed in Page or li...

Q. Measure of speed in Page or line Printer? Measure of speed relies on whether the printer is a Page Printer or Line. Printer: Let's understand these:  Line Printer:

Boolean algebra, https://www.chegg.com/homework-help/questions-and-answers/...

https://www.chegg.com/homework-help/questions-and-answers/57-karnaugh-maps-7-diagram-shows-system-hot-chocolate-drinks-vending-machine-vending-machi-q91661540

How the information can be stored, In a RAM, information can be stored ? A...

In a RAM, information can be stored ? Ans. RAM is used by the user, number of times.

Recent parallel programming models, A model for parallel programming is an ...

A model for parallel programming is an abstraction and is machine architecture independent. A model can be executed on several hardware and memory architectures. There are various

Hidden input, Yet another type of input is HIDDEN input. A HIDDEN in...

Yet another type of input is HIDDEN input. A HIDDEN input is a value/name pair which is returned to you but doesn

What are pooled tables, Normal 0 false false false EN-I...

Normal 0 false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4

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