Whenever I use Based Indexed Memory Addressing Mode, the syntax is like this:
PHP Code:
mov ax, [reg1][reg2
SI, DI, and BX will always use DS as the segment register but BP will use SS as its default segment register.
So if I do something like this:
PHP Code:
mov ax, [bx][si
It'll use DS as its default segment register (mov ax, ds:[bx + si]) because there is no BP register - that uses SS.
But now if I do something like this:
PHP Code:
mov ax, [bx][bp
Will the default segment register be DS(mov ax, DS:[bx + bp]) because the first register is bx that uses DS as its default segnment register?
And if I do the other way around:
PHP Code:
mov ax, [bp][bx
The default segment register will be SS)mov ax, SS:[bp + bx]) because first offset register is bp and it uses SS as its default segment register?