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 the virtual memory, What is virtual memory?  Virtual memory is ...

What is virtual memory?  Virtual memory is a technique that permits the execution of processes that may not be completely in memory. It is the separation of user logical memory

Explain the term - strong typing and weak typing, Explain the term - Strong...

Explain the term - Strong Typing and  Weak Typing Strong Typing : When any operation upon an object can be checked during compile time, when type is confirmed forcefully.

For what purpose Karnaugh map is used, Karnaugh map is used for the purpose...

Karnaugh map is used for the purpose of ? Ans. Karnaugh map is used for, to minimize the terms in a Boolean expression.

What are threads, What are threads? A thread, sometimes termed as a lig...

What are threads? A thread, sometimes termed as a lightweight process (LWP), is a fundamental unit of CPU utilization; this comprises a thread ID a register set and a stack and

What is connection, An established communication session among a server and...

An established communication session among a server and a workstation.

What are user threads, What are User threads   User threads are support...

What are User threads   User threads are supported above the kernel and are executed by a thread library at the user level. Thread creation & scheduling are done in the user sp

Differentiate between linear and matrix addressing modes, Differentiate bet...

Differentiate between linear addressing and matrix addressing modes with examples. Ans: Linear Addressing: Addressing is the procedure of selecting one of the cells in a

Discuss the process of data mining, Discuss the process of data mining? ...

Discuss the process of data mining? The process of data mining having of three stages: (1)The initial exploration (2) Model building or pattern identification with validat

What is refactoring, What is refactoring? Refactoring is explained as t...

What is refactoring? Refactoring is explained as the changes to the internal structure of software to improve its design without changing its external functionality. It is an e

Explain dataflow computing, DATAFLOW COMPUTING A substitute to the Von ...

DATAFLOW COMPUTING A substitute to the Von Neumann model of calculation is dataflow computation model. In the dataflow model, control is tied to flow of data. Order of instruct

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