XLAT instruction converts the contents of AL register into a number stored in a memory table,this instruction perform the direct table look up technique often used to convert one code to another.An XLAT instruction 1st add the contents of this AL to BX to form a memory address within a data segment .It then copies the contents of this address into AL.This is the only instruction that adds an 8 bit number to 16-bit number.
xchg- Exchange contents of specified destination and source operands. eg. XCHG AL, CL Exchange contents of Al with CL XCHG BP, SI Exchange contents of BP with SI xlat- It is a translate instruction used for code conversion using look up table technique
XLAT introduces the concept of a "dictionary lookup." It is technically the same as "mov al,[ds:bx+al]", but with fewer bytes of instruction, and requiring fewer clock cycles. A developer might use this when determining which dynamic function to call based on some condition, or use it to look up the value of a byte in a certain memory area, or even when using it as a simple Ceasar cipher encoder/decoder (for elementary encryption of code, perhaps, as it'd be fairly useless for actual encryption).
Implicit addressing modes are of the assumption that the data is in predefined registers. also Known as Zero address instructions: Eg: XLAT ; assumes the operands in AX and BX AAM ;operates on the contents of AX only
The answer is 1.773453258976759325597867757785495485674456954686379546745667754411451284522488527785578547. I used a hexadecimal program to create this wonderful answer called PRESS RANDOM NUMBERS! True or false. Email me @ jay.panandiker@gmail.com!
mov ax, @data ; Initialize data section mov ds, ax mov bx, offset lookup ; Load offset of lookup in bx mov al, key ; key no. in al xlat ; translate byte in al mov bh, al ; al = lookup(key) mov ch, 02h ; Count of digits to be displayed mov cl, 04h ; Count to roll by 4 bits l2: rol bh, cl ; roll bl so that msb comes to lsb mov dl, bh ; load dl with data to be displayed and dl, 0fH ; get only lsb cmp dl, 09 ; check if digit is 0-9 or letter A-F jbe l4 add dl, 07 ; if letter add 37H else only add 30H l4: add dl, 30H mov ah, 02 ; Function 2 under INT 21H (Display character) int 21H dec ch ; Decrement Count jnz l2 mov ah, 4cH ; Terminate Program int 21H end