hey all, im wondering how you declare a variable in a string. like say i want to declare a string saying "The number should be no less than X" and I want the X to be able to vary depending on what I have the variable for it at.

i tried putting this:

X_VALUE = 20
.data
str1 BYTE "The number should be no less than ",X_VALUE,0

but i get some wierd symbol instead of my number so i know im doing it wrong.

Recommended Answers

All 2 Replies

Of course you get. X_VALUE is printed as ASCII-Character. You have to write a procedure to convert numbers to strings. Converting them to hex is quite simple. Just have a look out in the net.

You are wondering how you can have variable data in your string.
There are two methods,
that is, having a pointer (an offset) to a variable stored right after the string,
or have room for the variable itself
right after the string.
In either case your pointer
or the variable will be at an offset which is
the strings length
+ the offset of the string, which will
be the offset of the first byte of your
pointer or variable.

Here is some example code which
will leave room for a word after the
string:

.data
str db 'My String$',0,0
; the last two bytes leave room for
; a word

.code
; to get the offset of the variable do:
MOV BX, offset str
ADD BX, 0Ah   ; add length of string
                      ; to offset of str in BX
MOV word ptr [BX], 1234h
                      ; Move the value 1234h
                      ; into the word at [BX]
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.