Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.asm.x86    |    Ahh, the lost art of x86 assembly    |    4,675 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 4,378 of 4,675    |
|    R.Wieser to All    |
|    Re: shorter code to print a 16bit number    |
|    30 Jul 21 17:26:59    |
      From: address@nospicedham.not.available              luser,              > It's trying to print a 16bit signed integer (ignoring INT_MIN)       > left to right with no leading zeros.       ...       > It tests each digit for zero where it jumps over the int 10h call       > except the last digit.              Those two do not match. And as your code seem to be written according to       the second ...       Try printing the value 3002 (or something else with embedded zeroes) to see       what I mean.              > Is it possible to tighten up this code?              I'm not sure what "tighten up" is ment to be read as. Smaller ? Faster ?       In the first case, how many bytes is it now ?              My own, erstwhile "trick" was, while doing the same as you (dividing by the       largest divisor first), to load a register with the divisor and than call a       small routine doing the division and printing.              But in the light of your "skip leading zeroes" you could do worse than to       look at what John posted, as that method automatically discards leading       zeroes - it simply stops as soon as the remainder becomes zero. I'm not so       sure about if that "loop" at the end will work though, as the INT 0x10 could       easily trash cx..              > It occurs to me that the DIV instruction has a mod field. So that       > means the divisor could be register indirect, right? like through SI       > or BX, maybe?              Yes, would work. And that same list can than also be used to skip leading       zeroes.              > Sorry if I'm jumping the gun asking for help before exerting the       > requisite effort.              I can imagine that you ask, but I do not quite understand why you did not       test your own code first ...              Regards,       Rudy Wieser              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca