NASM 2.05 based x86 Instruction Reference[ch360]
A.5.334 XLATB: Translate Byte in Lookup Table XLAT ; D7 [8086] XLATB ; D7 [8086] XLATB adds the value in AL, treated as an unsigned byte, to BX or EBX, and loads the byte from the resulting address (in the segment specified by DS) back into AL. The base register used is BX if the address size is 16 bits, and EBX if it is 32 bits. If you need to use an address size not equal to the current BITS setting, you can use an explicit "a16" or "a32" prefix. The segment register used to load from [BX+AL] or [EBX+AL] can be overridden by using a segment register name as a prefix (for example, ES XLATB).