How to encode the operands for a sub immediate 83 /5 opcode, like sub edx, 0x3a?How might I convert Intel 80386 Machine Code to Assembly Language?How to use MOV instruction in ARM with an immediate number as the second operandHow do I achieve the theoretical maximum of 4 FLOPs per cycle?mov instructions with byte destination for immediate to memoryWhy does GCC generate 15-20% faster code if I optimize for size instead of speed?How to interpret x86 opcode map?assembly - opcodes vs. nasm instructionsIs the PADDD instruction actually supported by MMX, even though it's missing from Intel's manual?rbp not allowed as SIB base?Segment Base for moffs16/32

Is there precedent or are there procedures for a US president refusing to concede to an electoral defeat?

How to align text behind bullet points

Dimmer switch not connected to ground

What does the coin flipping before dying mean?

All of my Firefox add-ons been disabled suddenly, how can I re-enable them?

Why doesn't a particle exert force on itself?

How can I obtain and work with a Platonic dodecahedron?

Copper as an adjective to refer to something made of copper

Can I combine SELECT TOP() with the IN operator?

Why would a military not separate its forces into different branches?

Questions about creation of a photon

Can you figure out this language?

How is Pauli's exclusion principle still valid in these cases?

Intersections in Tikz

How do I, as a DM, handle a party that decides to set up an ambush in a dungeon?

How did the Apollo guidance computer handle parity bit errors?

Why can't argument be forwarded inside lambda without mutable?

What are these two Sewer Pipes Coming up Out the Ground?

Why is the blank symbol not considered part of the input alphabet of a Turing machine?

As a GM, is it bad form to ask for a moment to think when improvising?

Who filmed the Apollo 11 trans-lunar injection?

What does のそ mean on this picture?

Huffman Code in C++

Convert Numbers To Emoji Math



How to encode the operands for a sub immediate 83 /5 opcode, like sub edx, 0x3a?


How might I convert Intel 80386 Machine Code to Assembly Language?How to use MOV instruction in ARM with an immediate number as the second operandHow do I achieve the theoretical maximum of 4 FLOPs per cycle?mov instructions with byte destination for immediate to memoryWhy does GCC generate 15-20% faster code if I optimize for size instead of speed?How to interpret x86 opcode map?assembly - opcodes vs. nasm instructionsIs the PADDD instruction actually supported by MMX, even though it's missing from Intel's manual?rbp not allowed as SIB base?Segment Base for moffs16/32






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I'm having trouble looking at assembly instructions such as this in GAS syntax



subl $0x3a, %edx


and then being able to use the Intel manual to manually produce the matching machine code which happens to be



83EA3A


I realize i go in the intel manual to the subtract page and seeing that we are subtracting an immediate from a register which would start us off with opcode 83/5 ib according to the intel manual but im a little lost where to go from here.










share|improve this question
























  • Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

    – Peter Cordes
    Mar 23 at 5:00

















0















I'm having trouble looking at assembly instructions such as this in GAS syntax



subl $0x3a, %edx


and then being able to use the Intel manual to manually produce the matching machine code which happens to be



83EA3A


I realize i go in the intel manual to the subtract page and seeing that we are subtracting an immediate from a register which would start us off with opcode 83/5 ib according to the intel manual but im a little lost where to go from here.










share|improve this question
























  • Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

    – Peter Cordes
    Mar 23 at 5:00













0












0








0








I'm having trouble looking at assembly instructions such as this in GAS syntax



subl $0x3a, %edx


and then being able to use the Intel manual to manually produce the matching machine code which happens to be



83EA3A


I realize i go in the intel manual to the subtract page and seeing that we are subtracting an immediate from a register which would start us off with opcode 83/5 ib according to the intel manual but im a little lost where to go from here.










share|improve this question
















I'm having trouble looking at assembly instructions such as this in GAS syntax



subl $0x3a, %edx


and then being able to use the Intel manual to manually produce the matching machine code which happens to be



83EA3A


I realize i go in the intel manual to the subtract page and seeing that we are subtracting an immediate from a register which would start us off with opcode 83/5 ib according to the intel manual but im a little lost where to go from here.







assembly x86 intel opcode machine-code






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 23 at 6:42









Peter Cordes

138k19211354




138k19211354










asked Mar 23 at 4:10









littlemimuslittlemimus

162




162












  • Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

    – Peter Cordes
    Mar 23 at 5:00

















  • Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

    – Peter Cordes
    Mar 23 at 5:00
















Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

– Peter Cordes
Mar 23 at 5:00





Yes, since the immediate fits in a sign-extended imm8, 83 /5 is the best choice. The register operand is encoded in the rm field of a ModRM byte, as documented in the "Instruction Operand Encoding" table for that instruction, felixcloutier.com/x86/sub

– Peter Cordes
Mar 23 at 5:00












1 Answer
1






active

oldest

votes


















2














The opcode (8316) is followed by the ModR/M byte.
/5 (or /1012) is the Reg/Opcode field of the byte.
The Mod (112) and R/M (0102) fields specify the register (edx).
Hence: 11.101.0102 = EA16.



See:



  • 2.1 INSTRUCTION FORMAT FOR PROTECTED MODE, REAL-ADDRESS MODE, AND VIRTUAL-8086 MODE of volume 2 of Intel® 64 and IA-32 Architectures Software Developer’s Manual

  • In particular, Table 2-2. 32-Bit Addressing Forms with the ModR/M Byte





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',
    autoActivateHeartbeat: false,
    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%2f55310538%2fhow-to-encode-the-operands-for-a-sub-immediate-83-5-opcode-like-sub-edx-0x3a%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









    2














    The opcode (8316) is followed by the ModR/M byte.
    /5 (or /1012) is the Reg/Opcode field of the byte.
    The Mod (112) and R/M (0102) fields specify the register (edx).
    Hence: 11.101.0102 = EA16.



    See:



    • 2.1 INSTRUCTION FORMAT FOR PROTECTED MODE, REAL-ADDRESS MODE, AND VIRTUAL-8086 MODE of volume 2 of Intel® 64 and IA-32 Architectures Software Developer’s Manual

    • In particular, Table 2-2. 32-Bit Addressing Forms with the ModR/M Byte





    share|improve this answer



























      2














      The opcode (8316) is followed by the ModR/M byte.
      /5 (or /1012) is the Reg/Opcode field of the byte.
      The Mod (112) and R/M (0102) fields specify the register (edx).
      Hence: 11.101.0102 = EA16.



      See:



      • 2.1 INSTRUCTION FORMAT FOR PROTECTED MODE, REAL-ADDRESS MODE, AND VIRTUAL-8086 MODE of volume 2 of Intel® 64 and IA-32 Architectures Software Developer’s Manual

      • In particular, Table 2-2. 32-Bit Addressing Forms with the ModR/M Byte





      share|improve this answer

























        2












        2








        2







        The opcode (8316) is followed by the ModR/M byte.
        /5 (or /1012) is the Reg/Opcode field of the byte.
        The Mod (112) and R/M (0102) fields specify the register (edx).
        Hence: 11.101.0102 = EA16.



        See:



        • 2.1 INSTRUCTION FORMAT FOR PROTECTED MODE, REAL-ADDRESS MODE, AND VIRTUAL-8086 MODE of volume 2 of Intel® 64 and IA-32 Architectures Software Developer’s Manual

        • In particular, Table 2-2. 32-Bit Addressing Forms with the ModR/M Byte





        share|improve this answer













        The opcode (8316) is followed by the ModR/M byte.
        /5 (or /1012) is the Reg/Opcode field of the byte.
        The Mod (112) and R/M (0102) fields specify the register (edx).
        Hence: 11.101.0102 = EA16.



        See:



        • 2.1 INSTRUCTION FORMAT FOR PROTECTED MODE, REAL-ADDRESS MODE, AND VIRTUAL-8086 MODE of volume 2 of Intel® 64 and IA-32 Architectures Software Developer’s Manual

        • In particular, Table 2-2. 32-Bit Addressing Forms with the ModR/M Byte






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 23 at 4:59









        Alexey FrunzeAlexey Frunze

        53.1k954132




        53.1k954132





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid …


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55310538%2fhow-to-encode-the-operands-for-a-sub-immediate-83-5-opcode-like-sub-edx-0x3a%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 preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

            Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?