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 vector processing issues in pipelining, Vector Processing   A...

Vector Processing   A vector is an ordered set of similar type of scalar data items. The scalar tem may be a logical value, an integer or a floating point number. Vector proce

Initialize new pvm processes, Q. Initialize new PVM processes? pvm_spa...

Q. Initialize new PVM processes? pvm_spawn( char *task, char **argv, int flag, char *where, int ntask, int *tids ) Initialize new PVM processes. Task a character st

Describe the roles of association, Describe the roles of association No...

Describe the roles of association Note that each association has roles. For instance, in Figure we can see that two classes, Student and University, have their predefined roles

Explain microcode and VLSI technology, Q. Explain Microcode and VLSI Techno...

Q. Explain Microcode and VLSI Technology? It is considered that CU of a computer be assembled using two ways; create micro-program which execute micro-instructions or construct

What is branch target, What is branch target? As a result of branch ins...

What is branch target? As a result of branch instruction, the processor fetches and implements the instruction at a new address called as branch target, instead of the instruct

Creating a contacts application, Creating a contacts application: Firs...

Creating a contacts application: First, a contact is defined as the tuple: firstName, lastName, phoneNumber and email. You will create a class Contact that allows getting a

Explain the different sub-functions of process scheduling, Explain the diff...

Explain the different sub-functions of Process Scheduling. Process scheduling contains the subsequent sub-functions: 1. Scheduling: Chooses the process to be executed next

Define various classes of interrupts, Q. Define Various classes of Interrup...

Q. Define Various classes of Interrupts? Figure below gives list of some common interrupts and events which causes occurrence of those interrupts. Figure: Various clas

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