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

            SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

            용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

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