Search code examples
x86-16microprocessorsaddressing-mode

What addressing mode is used in 'mov cx, [bp+6]'?


What addressing mode is used in "mov cx, [bp+6]"? The processor is intel 8086. I am studying "Microprocessor and Interfacing" by Douglas V. Hall. I know its memory addressing mode. But not sure whether its based addressing mode or index addressing mode?


Solution

  • [bp+6] is the based addressing mode. From the original 8086 docs:

    In based addressing, the effective address is the sum of a displacement value and the content of register BX or register BP.

    Indexed addressing mode is similar but with the SI or DI registers.

    Basically, you have the following modes:

    • Direct memory accessing like [1234].
    • Register indirect like [bx].
    • Based addressing like 4[bx] or [bp+8].
    • Indexed addressing like 4[si] or [di+4].
    • Based indexed addressing (combo of the previous two) such as 4[bx][si] or [bx+si+4].
    • Some other inconsequential (in this context) ones like implicit, port, string, relative.