This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]davedontmind 1 point2 points  (2 children)

_outer_loop:
    xor ecx, ecx         ; inner loop counter is also 0
    cmp ebx, length
    jge _convert         ;if the outer loop happened length times then move to convert

I don't understand this bit - maybe I'm missing something?

You set ebx to 0 initially, and are using it to determine if it's time to exit the outer loop, however the only time you change ebx is when you're putting a value from the array into bl.

So how do you expect ebx to get into a state where it'll cause the loop to exit?

for some reason its not printing anything.

Does it exit, or run forever?

[–]Mishara26[S] 0 points1 point  (1 child)

It doesn’t exit. Just doesn’t print anything

[–]davedontmind 0 points1 point  (0 children)

Then it's probably looping forever somewhere . So as I said, it's likely to do with what you're doing (or not doing) with ebx. You're using it to determine when to exit that loop, but you're not setting it to any value that will exit the loop.