Quantcast

A community for students. Sign up today!

Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

Mahlatse1

  • 2 years ago

how to make a while loop in assembly?

  • This Question is Closed
  1. slotema
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 3

    You'll need something like the following structure: label: <loop body> ... <loop condition check> <conditional branch to 'label'> <loop's finished here>

  2. Mahlatse1
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    can u please show me with a simple example that does all those things

  3. slotema
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 3

    which architecture? X86, amd64, MIPS?

  4. Mahlatse1
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    x86

  5. slotema
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 3

    Here a simple example that calculates 2 * n: movl $0, %eax # i = 0 movl $0, %ebx # result = 0 movl $10, %ecx # n = 10 jmp check # without this jmp, it'd be a do-while loop loop: addl $2, %ebx # result = 2 * result addl $1, %eax # i++ check: cmp %ecx, %eax jl loop # Jump if i < n Btw, most compilers can also output assembly code. If you compile some C-code with gcc, you need to add the `-S` flag. Then, gcc will only generate ASM for you.

  6. walters
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    wat are this ( $)

  7. Mahlatse1
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    i'm getting errors

    1 Attachment
  8. slotema
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 3

    There are two different syntaxes for writing x86 ASM: AT&T and Intel. The code I wrote is in AT&T syntax while your assembler probably expects Intel syntax. @walters The $ is part of the AT&T syntax to indicate an immediate (or constant) value. % indicates a register. A quick (but not tested yet) rewrite: mov eax, 0 mov ebx, 0 mov ecx, 10 jmp check loop: add ebx, 2 add eax. 1 check: cmp eax, ecx jl loop

  9. AuthenticationError
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    that is why u have to analyse numbers correctly u'll get it

  10. walters
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    @slotema i get it

  11. Mahlatse1
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    OOOH! I SEE IT! @slotema

  12. Mahlatse1
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    @AuthenticationError WHAT DO YOU MEAN BY Numbers?

  13. walters
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    so using assembly @slotema how to do modulus because this is giving me errors a mod b

  14. walters
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    like looping if x is even is'nt i have to do modulus like in c and c+

  15. slotema
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 3

    If you really have different questions, you should start a new thread, so Mahlatse1 won't get a lot of notifications. For modulo, you'll need to do a division. After e.g. `div eax, ebx`, eax will contain the quotient and edx will contain the remainder. But divisions are costly. If you just want to check whether or not a number is even, there are faster ways of doing that. Like checking the LSB of the number (if it's 1, the number is odd).

  16. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Ask a Question
Find more explanations on OpenStudy

Your question is ready. Sign up for free to start getting answers.

spraguer (Moderator)
5 → View Detailed Profile

is replying to Can someone tell me what button the professor is hitting...

23

  • Teamwork 19 Teammate
  • Problem Solving 19 Hero
  • You have blocked this person.
  • ✔ You're a fan Checking fan status...

Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.

This is the testimonial you wrote.
You haven't written a testimonial for Owlfred.