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;
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
add a comment |
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
Yes, since the immediate fits in a sign-extended imm8,83 /5is 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
add a comment |
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
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
assembly x86 intel opcode machine-code
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 /5is 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
add a comment |
Yes, since the immediate fits in a sign-extended imm8,83 /5is 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
add a comment |
1 Answer
1
active
oldest
votes
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
add a comment |
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
add a comment |
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
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
answered Mar 23 at 4:59
Alexey FrunzeAlexey Frunze
53.1k954132
53.1k954132
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Yes, since the immediate fits in a sign-extended imm8,
83 /5is 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