
Operands
Introduction
This article defines an operand as it is used in x86 assembly instructions. It goes on to explain in detail, using simulations, three modes by which the operand of an instruction is specified.
This article is designed for self-starters, students and professionals who want to gain a detailed understanding of operands and how they’re used. It will help to give you the fine details and a better understanding of x86 operands and how they are used in addressing modes.
Operands in x86
An operand is a subsection of an x86 instruction that specifies data that is being operated on or being manipulated. An x86 instruction can have from zero to three operands in its statement. An operand has a type that can either be a register, a memory location, an immediate value or an address. (Source)
Addressing modes in x86
An x86 addressing mode briefly explains the types of operands and the way they are accessed from various locations within the microprocessor architecture. The term addressing modes refers to the way in which the operand of an instruction is specified. Information contained in the instruction code is the value of the operand or the address of the result/operand. (Source)
Register addressing mode
In this addressing mode, operands are specified using either 8-bit, 16-bit or 32-bit registers.
Register operands in two of the 8-bit general purpose registers
Let’s assume BL=0x2 and BH=0x0.
- MOV BH, BL: This instruction copies the content of register BL to BH. The new value of BH is 0x2. The source operand is BL and the destination operand is BH
Figure 1: Register BL preset with initial value of 0x2 before instruction 1 is executed
Figure 2: Contents shown for 8-bit registers BL and BH after instruction (Read more...)
*** This is a Security Bloggers Network syndicated blog from Infosec Resources authored by Richard Azu. Read the original post at: http://feedproxy.google.com/~r/infosecResources/~3/8wusKXTwPZk/