Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Assembly language. conversion.

  1. Mar 17, 2009 #1
    Assembly language. how to change the 80h in my register to 50h?
    that goes to others to. like 45h to 2Dh.

    basically, i came up with a sequence to change the user's double digit decimal input to hex value.

    when i enter 45, AL = 45h
    how do i change it to 2Dh??

    ; al = 45h. how to change it to 2Dh?

    45(decimal) = 2Dh.
    must be able to do this for other conversion.
  2. jcsd
  3. Mar 18, 2009 #2


    User Avatar
    Science Advisor

    I'm not quite sure if I completely understand your question, but wouldn't the user's input in this case be two ASCII bytes? (The ASCII characters for '4'--0x34, and '5'--0x35) Unless you've already parsed these by ANDing with 0xf0)

    If that's the case, you can simply multiply the first byte by 10, and add it to the second byte. Simple base 10 long form, as you probably did in elementary. In this case, 4 x 10 is 40 is 0x28 and when you add 5 to it, you get 0x2d, as in your example. If instead, it's packed into one byte, you'll need to do some masking and shifting before multiplying the 10s digit by 10 and adding it to the 1s digit.

    The actual implementation is left as a task to the user.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook