; XLAT.ASM
; Demonstrates character encoding using XLAT instruction
.386 ; Tells MASM to use Intel 80386 instruction set.
.MODEL FLAT ; Flat memory model
option casemap:none ; Treat labels as case-sensitive
.STACK 100h ; (default is 1-kilobyte stack)
.DATA ; Begin initialized data segment
; Table for encrypting digits:
; Input digits: 0 1 2 3 4 5 6 7 8 9
; Encrypted digits: 4 6 9 5 0 3 1 8 7 2
xlat_table DB "4695031872"
.CODE ; Begin code segment
_main PROC ; Beginning of code
mov ebx, OFFSET xlat_table
mov al, '5' ; put input character into AL
sub al, '0' ; convert input character to index
xlatb ; AL = encrypted digit character
ret
_main ENDP
END _main ; Marks the end of the module and sets the program entry point label