User Tools

Site Tools


This is an old revision of the document!

Converting a number to a string

by Richard Russell, January 2015

You may wish to convert a number to a string in assembly language (equivalent to the STR$ function in BASIC). This can easily be done by calling an internal routine within the interpreter. Here is how to do it (requires BBC BASIC for Windows version 6):

      ; eax = print format control (equivalent to @%)
      ; bx|ecx|edx = number to print (80-bit variant)
      ; edi = address of destination buffer
      push eax
      mov  ebp,esp
      call @fn%(12)
      pop  eax
      mov  byte [edx+ecx],0

On completion a NUL-terminated string is stored in the supplied buffer.

To illustrate the use of this code here is a complete program which prints the value of PI using assembly language:

      DIM Buffer% 255, P% 100, L% -1
      [OPT 10
      mov  eax,&1414     ; G20 format
      mov  bx,&4000      ; Value of PI ...
      mov  ecx,&C90FDAA2 ; .. as an ...
      mov  edx,&2168C235 ; .. 80-bit float
      mov  edi,Buffer%   ; Destination buffer
      push eax
      mov  ebp,esp
      call @fn%(12)
      pop  eax
      mov  byte [edx+ecx],0
      mov  esi,Buffer%
      call "oswrch"
      or   al,al
      jnz  vout
      CALL ppi
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information
converting_20a_20number_20to_20a_20string.1522502351.txt.gz · Last modified: 2018/03/31 13:19 by