## A community for students. Sign up today

Here's the question you clicked on:

## walters 2 years ago hi how can i write the following statement in assembly language.

• This Question is Closed
1. walters

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

2. walters

@Opcode

3. A.Avinash_Goutham

8086? mips?

4. walters

yes pls help @A.Avinash_Goutham

5. walters

8086

6. walters

@hartnn

7. 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

8. walters

@eSpeX what about 8086

9. walters

@artofspeed and @nubeer

10. 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.

11. walters

how to use modulus using assembly

12. 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.

13. walters

so tell me wat is the deffrence between 8086 and mips

14. eSpeX

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

15. walters

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

16. 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/

17. 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.

#### Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy