Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

PCSPIM - declaring an array of strings

  1. Aug 6, 2012 #1
    Hey all,

    So declaring integers successively in memory (using .word) in an array is all well and understandable. Since an integer is 4 bytes in length, as is a memory word.
    For example:

    x: .word 2, -13, 24, 123 #initialization of elements 0 to 3 of array x

    However, how would I go about declaring an array of strings that are three characters long in memory???

    would i use:

    stringArray: .asciiz "the", "dog", "run"

    or perhaps:

    stringArray: .word 't''h''e', 'd''o''g', 'r''u''n'

    thanks in advance
  2. jcsd
  3. Aug 8, 2012 #2


    User Avatar
    Science Advisor

    Hey magneto202 and welcome to the forums.

    In terms of what the computer understands, and given that this is in an assembler context (correct me if I'm wrong), then the only thing that matters is the value of the data being correct and not how its represented.

    If you know that the data is represented in a format (like say 8-bit ASCII) and you know the string and character representations work then I can't see why you wouldn't use this.

    The important thing is that the definition and its representation in memory are the same.

    Also you need to consider the functions that use the data (which I'm assuming are probably some kind of interrupt), but again I'm going to speculate and say that the data definitions will create the right kind of representations.

    Alternatively if you need a specific representation, you can never go wrong with specifying a block by block representation in a per byte, or per word description of contiguous data, but the point of having multiple specifications is that the assembler does this for you anyway.

    Bottom line: it doesn't matter as long the final representation in memory is right (and you can specify the same thing in many different ways).
  4. Aug 11, 2012 #3
    Excellent. have remained with the declaration of:

    Nstart: .asciiz "the","dog","run"

    and has worked successfully for my simulation implementation. The string array addressing in memory is consistent when I try access byte by byte.

    Thanks chiro for the input.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook