Search code examples
assemblyx86-16addressing-mode

Assembly 8086 addressing mode


How does XOR [130][BX][DI], CL work? (I know what XOR does) I mean how is the effective address of the memory part calculated? Which addressing mode is this?


Solution

  • You wrote [130], not 130. Are you sure that's correct? I don't know whether (and I don't think) that's possible.

    "The Art of Assembly Language" calls this "Based Indexed Plus Displacement Addressing Mode".

    The default segment in this case is DS (because you use BX), which means your instruction is the same as

    XOR DS:130[BX][DI], CL
    

    The effective address is calculated by taking the segment address and adding 130, BX, and DI. So it would be (DS*10h)+130+BX+DI.