"IBM personal computer assembly language tutorial" - читать интересную книгу автора (Auerbach J.)










IBM PC Assembly Language Tutorial 6


Two operands: One operand:
R <-- M R
M <-- R M
R <-- R S *
R|M <-- I
R|M <-- S *
S <-- R|M *

* -- data moving instructions (MOV, PUSH, POP) only
S -- segment register (CS, DS, ES, SS)
R -- ordinary register (AX, BX, CX, DX, SI, DI, BP, SP,
AH, AL, BH, BL, CH, CL, DH, DL)
M -- one of the following
pure address
[BX]+offset
[BP]+offset
any of the above indexed by SI
any of the first three indexed by DI

4. Of course, you want to learn the operations themselves. As I've sug-
gested, you want to learn the op codes as the assembler presents them,
not as the CPU machine language presents them. So, even though there
are many MOV op codes you don't need to learn them. Basically, here is
the instruction set:

a. Ordinary two operand instructions. These instructions perform an
operation and leave the result in place of one of the operands.
They are

1) ADD and ADC -- addition, with or without including a carry from
a previous addition

2) SUB and SBB -- subtraction, with or without including a borrow
from a previous subtraction

3) CMP -- compare. It is useful to think of this as a subtraction
with the answer being thrown away and neither operand actually
changed