This is a question on a hand out, it asks:

What is the machine code that corresponds to the AVR Assembly Language Instruction inc r22? Enter your answer as a 16 bit binary number. There must be no spaces or punctuation marks - just enter sixteen 1's or 0's.

I found the corresponding machine code which is 1001 010d dddd 0011. I added the binaries together for 22 which is 16 + 6 so:

10000 + 110
= 010110

I assume from here that you just sub it into the d's hence,

1001 010d dddd 0011
1001 0101 0110 0011

And there's the 16 bit answer. Is this correct, or have I done this the wrong way?

  • \$\begingroup\$ Where did you find 1001 010d dddd 0011? \$\endgroup\$
    – jippie
    Commented Apr 14, 2013 at 9:08
  • \$\begingroup\$ @jippie avr assembly documents \$\endgroup\$
    – Sim
    Commented Apr 14, 2013 at 9:11
  • \$\begingroup\$ Do you have a link to it? \$\endgroup\$
    – jippie
    Commented Apr 14, 2013 at 9:23
  • \$\begingroup\$ You want the AVR Instruction Set document - doc0856.pdf \$\endgroup\$ Commented Apr 14, 2013 at 9:26
  • \$\begingroup\$ Did your teacher work in web design? "Enter your credit card with no spaces, because we can't figure out how to remove them before handing them to the processing API ...". \$\endgroup\$
    – Kaz
    Commented Apr 14, 2013 at 15:59

1 Answer 1


Check it with the assembler!

The code I get for inc r22 is 0x9563, which is 1001010101100011. You are correct!

  • \$\begingroup\$ I have no idea how to use the assembler yet, i suck! Thank you \$\endgroup\$
    – Sim
    Commented Apr 14, 2013 at 9:39
  • \$\begingroup\$ @jameskensington: Maybe you can improve your answer by describing how to "check it with the assembler"? \$\endgroup\$
    – Rev
    Commented Apr 14, 2013 at 16:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.