Jump to content

How to write an 8 byte MOV instruction


133 posts in this topic

Recommended Posts

Posted

Have you ever had the issue of needing to move something bigger than 65535 into R0, and you needed to use a literal number (MOV R0, #255) instead of a register (MOV R0, R7)? Well I did to make a custom floating point return value to separate the field of view function for Bullet Force so I would still be able to get the zoomed in field of view when I aim down sights.

 

This is a very good when you want to move a floating point value into R0, like 1120403456. Additionally, I'll use 1120403456 for this tutorial.

 

Hidden Content

    Step 1:

    Convert your number to hexadecimal. Go to http://www.binaryhexconverter.com/decimal-to-hex-converter.

     

    1120403456 is 42C80000 in hexadecimal. Cool.

     

    Step 2:

    Break your hexadecimal value in half, and that will leave you with two "sections". For 42C80000:

     

    The first section would be 0000.

    The second section would be 42C8.

     

    Step 3

    Use ARM Converter (http://armconverter.com) to generate the instructions we need. They will always be in this format:

     

    MOVW R0, #/*section 1*/
    MOVT R0, #/*section 2*/

    In my case, my instructions would be:

     

    MOVW R0, #0x0000
    MOVT R0, #0x42C8

    Convert those two instructions, and write the hex down somewhere.

     

    Step 4:

    Time to make the hex string!

     

    I used ARM Converter to convert these and it gave me these hexes:

     

    MOVW R0, #0x0000 = 40F20000

    MOVT R0, #0x42C8 = C4F2C820

     

    Combine the two, and the final hex of MOV R0, #0x42C80000 is:

    40F20000C4F2C820

    Keep in mind this is 8 bytes, so you'll need to find 4 bytes of extra space before the instruction you are overwriting is.

  • Replies 132
  • Created
  • Last Reply

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines