The tutorials right on the emu8086 website show how to do base-offset addressing:
http://www.emu8086.com/cx/asm_tutorial_02.html -
ORG 100H ; make simple program
MOV AX, 0B800h ; AX = B800
MOV DS, AX ; DS = AX
MOV CL, 'A' ; CL = 'A'
MOV CH, 1101_1111b ; CH = colour code
MOV BX, 15Eh ; BX = 015E
MOV [BX], CX ; [DS:BX] = CX
RET ; exit
They load the base address 0xb800 into DS (data segment register), load up some values into the low and high portions of the CX register, load the offset address 0x015e into the BX register, and then write the values from CX into the base:offset address [DS:BX].