Ask your own question, for FREE!
Computer Science 12 Online
OpenStudy (walters):

hi how can i write the following statement in assembly language.

OpenStudy (walters):

while (n>1){ if ( n is even) n : = n/2 else n:=3*n+1 }

OpenStudy (walters):

@Opcode

OpenStudy (anonymous):

8086? mips?

OpenStudy (walters):

yes pls help @A.Avinash_Goutham

OpenStudy (walters):

8086

OpenStudy (walters):

@hartnn

OpenStudy (espex):

In MIPS, your code will look like this: .data N: .word 30 .text main: add $t0, $zero, N # copy N into the register WHILE: blt $t0, 1, END # while (n > 1) sll $t1, $t0, 31 # shift out so only least sig bit remains beq $t1, 1, ODD # else { ... } sra $s0, $t0, 1 # n = n/2 add $t0, $s0, $zero # copy result back to temp register j WHILE ODD: sla $s0, $t0, 1 # multiply by two add $s0, $t0, $zero # add N add $s0, $zero, 1 # + 1 add $t0, $s0, $zero # copy result back into register j WHILE END: sw $t0, N # write N to memory jr $ra

OpenStudy (walters):

@eSpeX what about 8086

OpenStudy (walters):

@artofspeed and @nubeer

OpenStudy (espex):

I do not have experience with the 8086 instruction set, it was my hope that you could take what you have learned and adapt the logic and instructions to match those that you are using.

OpenStudy (walters):

how to use modulus using assembly

OpenStudy (espex):

You won't really use modulus per se, you are dealing with binary, which is why I logically shifted the number to the left. Any 'odd' number will have to set the least significant bit, if it is a 0, then the number is even.

OpenStudy (walters):

so tell me wat is the deffrence between 8086 and mips

OpenStudy (espex):

They use a different instruction set, while they do basically the same thing, it is a difference in how the instruction is formed.

OpenStudy (walters):

so to run it i need to install mips software or should i use MASM615

OpenStudy (espex):

If I recall correctly, the MASM assembler interprets only the 8086 instruction set, if you want to compile MIPS, try using the QtSPIM assembler. http://sourceforge.net/projects/spimsimulator/

OpenStudy (espex):

A cursory review of the x86 instructions show that they have some of the same instructions as MIPS, so it should be completely doable to convert the code I've given into instructions you can use with the 8086 assembler.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!