??? An operand might be a register, a memory location, or a value already in the
instruction word operand field.
An example machine instruction is the following ADD instruction for the Intel x86 computers. The Intel x86
instruction set is an unusually complex one to describe, because Intel has expanded the instruction set as it has
evolved the computer family. It would have been easier to create new instruction sets when computing evolved from
16-bit processing in 1978, to 32-bit processing in 1986, to 64-bit processing in 2007. Instead, the Intel engineers
very cleverly maintained compatibility with earlier instruction sets, while they added advanced capabilities. This
allowed old programs to continue to run on new computers, and that greatly eased upgrades among PC users. The
result, however effective technically and commercially, is an instruction set that is somewhat complex to describe.
Here is the bit pattern, broken into bytes for readability, which says, ???Add 40 to the contents of the DX register:???
00000001 11000010 00000000 00101000
The first byte is the op-code for ADD immediate (meaning the number to add resides in the instruction
word itself). The second byte says that the destination operand is a register, and in particular, the DX register.
Pages:
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107