code  segment 'CODE' PUBLIC
      assume cs:code
      extrn  display : far
main  proc  far
      push  ds
      mov   ax,0
      push  ax

      mov   ax,ddd
      mov   ds,ax
      assume ds:ddd

      mov   si,0     ; начальное двоичное значение
      mov   cx,16    ; сколько раз увеличить и вывести
      lea   bx,table ;  установка таблицы перекодировки
next: mov   ax,si    ;  значение двоичного кода для перекодировки
      xlatb          ; собственно перекодировка.... в al
      mov   dl,al    ; что выводим на консоль
      call  display
      inc   si
      loop  next
      ret
main  endp
code  ends
ddd   segment
table db  '0123456789ABCDEF'
ddd   ends

      end  main           