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,695 of 4,675   
   James Harris to All   
   String literals in asm source code   
   21 Dec 18 19:49:50   
   
   From: james.harris.1@nospicedham.gmail.com   
      
   What's the most readable way to include string literals in asm source code?   
      
      
      
   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?   
      
   --   
   James Harris   
      
   --- 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