Comment 4 for bug 579316

Revision history for this message
The Escapist (wisd00m) wrote :

This really is an important feature, I had to work around this some time ago and it can get pretty annoying fairly soon.

The minimal syntax typically supported is:

label: db 'f','o','o'
label: db "mystring",0A,0D,'$'

i.e. single quotes for single bytes, and double quotes for multiple bytes.

The built-in assembler is not especially good at handling those "pseudo instructions" (i.e. macros etc):
http://www.tortall.net/projects/yasm/manual/html/nasm-pseudop.html

      db 0x55 ; just the byte 0x55
      db 0x55,0x56,0x57 ; three bytes in succession
      db 'a',0x55 ; character constants are OK
      db 'hello',13,10,'$' ; so are string constants
      dw 0x1234 ; 0x34 0x12
      dw 'a' ; 0x61 0x00 (it's just a number)
      dw 'ab' ; 0x61 0x62 (character constant)
      dw 'abc' ; 0x61 0x62 0x63 0x00 (string)
      dd 0x12345678 ; 0x78 0x56 0x34 0x12
      dd 1.234567e20 ; floating-point constant
      dq 0x123456789abcdef0 ; eight byte constant
      dq 1.234567e20 ; double-precision float
      dt 1.234567e20 ; extended-precision float

source: http://www.nasm.us/doc/nasmdoc3.html

There are suggestions to replace the assembler with a more feature-complete solution: https://bugs.launchpad.net/gnusim8085/+bug/579336