[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]

    { SEAN PALMER

    I've been playing around with the AAM instruction and came up with some
    things you guys might find useful...

    Strings as function results are WIERD with the inline Assembler. 8)
    }

    function div10(b : byte) : byte; assembler;
    asm
      mov al, b
      aam
      mov al, ah
    end;

    function mod10(b : byte) : byte; assembler;
    asm
      mov al, b
      aam
    end;

    type
      str2 = string[2];
      str8 = string[8];

    function toStr2(b : byte) : str2; assembler;
    asm {only call with b=0~99}
      les  di, @RESULT
      cld
      mov  al, 2
      stosb
      mov  al, b
      aam
      xchg ah, al
      add  ax, $3030
      stosw
    end;

    {makes date string in MM/DD/YY format from m,d,y}
    function toDateStr(m,d,y:byte):str8;assembler;asm {only call with m,d,y=0~99}
      les  di, @RESULT
      cld
      mov  al, 8
      stosb
      mov  al, m
      aam
      xchg ah, al
      add  ax, $3030
      stosw
      mov  al, '/'
      stosb
      mov  al, d
      aam
      xchg ah, al
      add  ax, $3030
      stosw
      mov  al, '/'
      stosb
      mov  al, y
      aam
      xchg ah, al
      add  ax, $3030
      stosw
    end;

[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]