Size of an hex in x64 Assembly











up vote
0
down vote

favorite












I'm trying to try all the variants of the x command in assembly. I typed



(gdb) x /x $rsp
0x7fffffffdf90: 0x01


According to my book the x/x command select the first 8 bytes from rsp and write them as an hex. However, looking for the assembly documentation (gdb help) i have not found anywhere that the size of /x is explicitly 8 byte. So how do I know if it is really 8 bytes ?










share|improve this question






















  • Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
    – Peter Cordes
    Nov 13 at 7:19

















up vote
0
down vote

favorite












I'm trying to try all the variants of the x command in assembly. I typed



(gdb) x /x $rsp
0x7fffffffdf90: 0x01


According to my book the x/x command select the first 8 bytes from rsp and write them as an hex. However, looking for the assembly documentation (gdb help) i have not found anywhere that the size of /x is explicitly 8 byte. So how do I know if it is really 8 bytes ?










share|improve this question






















  • Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
    – Peter Cordes
    Nov 13 at 7:19















up vote
0
down vote

favorite









up vote
0
down vote

favorite











I'm trying to try all the variants of the x command in assembly. I typed



(gdb) x /x $rsp
0x7fffffffdf90: 0x01


According to my book the x/x command select the first 8 bytes from rsp and write them as an hex. However, looking for the assembly documentation (gdb help) i have not found anywhere that the size of /x is explicitly 8 byte. So how do I know if it is really 8 bytes ?










share|improve this question













I'm trying to try all the variants of the x command in assembly. I typed



(gdb) x /x $rsp
0x7fffffffdf90: 0x01


According to my book the x/x command select the first 8 bytes from rsp and write them as an hex. However, looking for the assembly documentation (gdb help) i have not found anywhere that the size of /x is explicitly 8 byte. So how do I know if it is really 8 bytes ?







assembly gdb






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 at 7:10









Koinos

367




367












  • Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
    – Peter Cordes
    Nov 13 at 7:19




















  • Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
    – Peter Cordes
    Nov 13 at 7:19


















Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
– Peter Cordes
Nov 13 at 7:19






Use a count larger than 1 to see what the grouping is, and what the gap is to the next address. Or dump something that definitely doesn't have zeros in the high bytes, because 0x01 and 0x00000001 might both print the same, but 0xDEADBEEF is unambiguously (at least) 4 bytes.
– Peter Cordes
Nov 13 at 7:19














1 Answer
1






active

oldest

votes

















up vote
1
down vote














So how do I know if it is really 8 bytes ?




It's not. It's "whatever size you used last". Documentation.



For example:



(gdb) x/bx $rsp
0x7fffffffcbc8: 0x1c


Subsequent x/x commands will use size 1 (a single char):



(gdb) x/x $rsp
0x7fffffffcbc8: 0x1c


You can override the size explicitly:



(gdb) x/gx $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c


Subsequent x/x commands now default to size 8:



(gdb) x/x $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c





share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275641%2fsize-of-an-hex-in-x64-assembly%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote














    So how do I know if it is really 8 bytes ?




    It's not. It's "whatever size you used last". Documentation.



    For example:



    (gdb) x/bx $rsp
    0x7fffffffcbc8: 0x1c


    Subsequent x/x commands will use size 1 (a single char):



    (gdb) x/x $rsp
    0x7fffffffcbc8: 0x1c


    You can override the size explicitly:



    (gdb) x/gx $rsp
    0x7fffffffcbc8: 0x00007ffff7ddc61c


    Subsequent x/x commands now default to size 8:



    (gdb) x/x $rsp
    0x7fffffffcbc8: 0x00007ffff7ddc61c





    share|improve this answer

























      up vote
      1
      down vote














      So how do I know if it is really 8 bytes ?




      It's not. It's "whatever size you used last". Documentation.



      For example:



      (gdb) x/bx $rsp
      0x7fffffffcbc8: 0x1c


      Subsequent x/x commands will use size 1 (a single char):



      (gdb) x/x $rsp
      0x7fffffffcbc8: 0x1c


      You can override the size explicitly:



      (gdb) x/gx $rsp
      0x7fffffffcbc8: 0x00007ffff7ddc61c


      Subsequent x/x commands now default to size 8:



      (gdb) x/x $rsp
      0x7fffffffcbc8: 0x00007ffff7ddc61c





      share|improve this answer























        up vote
        1
        down vote










        up vote
        1
        down vote










        So how do I know if it is really 8 bytes ?




        It's not. It's "whatever size you used last". Documentation.



        For example:



        (gdb) x/bx $rsp
        0x7fffffffcbc8: 0x1c


        Subsequent x/x commands will use size 1 (a single char):



        (gdb) x/x $rsp
        0x7fffffffcbc8: 0x1c


        You can override the size explicitly:



        (gdb) x/gx $rsp
        0x7fffffffcbc8: 0x00007ffff7ddc61c


        Subsequent x/x commands now default to size 8:



        (gdb) x/x $rsp
        0x7fffffffcbc8: 0x00007ffff7ddc61c





        share|improve this answer













        So how do I know if it is really 8 bytes ?




        It's not. It's "whatever size you used last". Documentation.



        For example:



        (gdb) x/bx $rsp
        0x7fffffffcbc8: 0x1c


        Subsequent x/x commands will use size 1 (a single char):



        (gdb) x/x $rsp
        0x7fffffffcbc8: 0x1c


        You can override the size explicitly:



        (gdb) x/gx $rsp
        0x7fffffffcbc8: 0x00007ffff7ddc61c


        Subsequent x/x commands now default to size 8:



        (gdb) x/x $rsp
        0x7fffffffcbc8: 0x00007ffff7ddc61c






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 at 16:05









        Employed Russian

        122k19163232




        122k19163232






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275641%2fsize-of-an-hex-in-x64-assembly%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to change which sound is reproduced for terminal bell?

            Can I use Tabulator js library in my java Spring + Thymeleaf project?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents