home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.asm.x86      Ahh, the lost art of x86 assembly      4,675 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,700 of 4,675   
   Kerr-Mudd,John to james.harris.1@nospicedham.gmail.co   
   Re: String literals in asm source code   
   22 Dec 18 11:33:12   
   
   From: notsaying@nospicedham.invalid.org   
      
   On Fri, 21 Dec 2018 19:49:50 GMT, James Harris   
    wrote:   
      
   > What's the most readable way to include string literals in asm source   
   > code?   
   >   
   Short answer; it depends   
   >   
      
   I generally like to keep text together (like Option 1) but at the bottom   
   of the src, YMMV.   
      
   > Option 1   
   > ========   
   >   
   > I usually define string literals in a separate block, like this.   
   >   
   > ;**********   
   > ;   
   > ; Data section   
   > ;   
   > ;**********   
   > section .data   
   > msg_started:         db "Operation started", 0   
   > msg_finished_errors: db "Operation finished. Number of errors: ", 0   
   >   
   > Then, later,   
   >   
   > ;**********   
   > ;   
   > ; Text section   
   > ;   
   > ;**********   
   >    mov ebx, msg_started   
   >   
   >   
   > The downside to that is that the message can be separated from its use   
   > by a few screens-worth of scrolling.   
   >   
   >   
   > Option 2   
   > ========   
   >   
   > To avoid a large separation between def and use one could temporarily   
   > drop to the data section as needed in the middle of other code (I'll   
   > use nops to indicate other executable code).   
   >   
   >    nop   
   >    nop   
   >    nop   
   > section .data   
   > msg_started: db "Operation started", 0   
   > section .text   
   >    mov ebx, msg_started   
   >   
   > The downside of that is it is arguably harder to read (and doesn't   
   > deal with duplicate strings well).   
   >   
   >   
   > Option 3   
   > ========   
   >   
   > Or, maybe a macro could effect option 2 - something like the   
   > following. (This is illustrative, not tested code.)   
   >   
   >    mov ebx, string_literal(db "Operation started", 0)   
   >   
   >   
   >   
   > Of course, code layout is not a major issue but it is one of   
   > convenience; and readability is important. So I wondered what other   
   > people do to incorporate strings in code. What have you found to be   
   > the most readable and easiest to work with?   
   >   
      
      
      
   --   
   Bah, and indeed, Humbug.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca