en este programa quisiera que se sumen dos variables 
que estan previamente declaradas, 
pero por alguna razon se concatenan los
valores y me devuelve strings en lugar de un valor 
creo que el error es de base y se encuentra en la 
declaracion
section .data 
msg:      db "La X= "
lmsg:       equ $-msg
msg1:      db "La Y= "
lmsg1:      equ $-msg1
;val_x:      db "100",10
;lval_x:      equ 100
;val_y:      db "9",10
;lval_y:      equ 9
nlinea:      db 10,10,0
lnlinea:   equ $-nlinea
section .bss
lval_x:      equ 100
lval_y:      equ 9
result   resw 2
section .text
global _start:
_start:
mov    eax,4
mov    ebx,1
mov   ecx,msg
mov   edx,lmsg
int   80h
mov   eax,4
mov   ebx,1
mov   ecx,lval_x
;mov   edx,lval_x
int   80h
mov   eax,4
mov   ebx,1
mov   ecx,msg1
mov   edx,lmsg1
int   80h
mov   eax,4
mov   ebx,1
mov   ecx,lval_y
;mov   edx,lval_y
int   80h
mov   eax,lval_x
mov   ebx,lval_y
sub   eax,'0'
sub   ebx,'0'
add   eax,ebx
add   eax,'0'
mov   [result], eax
mov   eax,4
mov   ebx,1
mov   ecx,result
int   80h
mov   eax,4
mov   ebx,1
mov   ecx,nlinea
mov   edx,lnlinea
int   80h
mov   eax,1
mov   ebx,0
int   80h
			
			
			
				Hola
¿Quieres que imprima el entero del resultado?
Podrías declarar las variables con un .int.
No sé porqué copias 1 a ebx todas las veces si no cambia el valor, hasta esos sub que no se a que vienen, estaria mejor así:
inc ebx
Un saludo.
			
			
			
				mov eax,4; Especifica la llamada al sys_write
mov ebx,1;Especifica el descriptor de archivo 1 :Standar de Output
sub eax,'0'es para transformar de string a decimal 
add eax,'0' transforma de decilmal a string
			
			
			
				Es Masm eso ? Podrias probar con atodw y dwtoa
			
			
			
				Lo siento creo que no di la suficiente información es nasm 
pero igual ya lo resolví y quedo algo así 
section .data
m:    db "La x= ";mensaje a mostrar
lm:    equ $-m    ;tama ˜no del mensaje
x:    db "100"   ;se define el valor de la variable
xl:    equ $-x    ;se define el tama˜no de la variable
de:    db "9"   ;se define el valor de la variable 2
del:    equ $-de   ;se define el tama˜no
se:    db 10,0,0   ; generamos un salto de linea
sel:    equ $-se   ; generamos el espacio
section .bss
result    resw 2 ; creamos la variable resultado
section .text
global start:    ;Punto de entrada para Linker
start:
mov    eax,4   ;Especifica la llamada al sys write
mov    ebx,1   ;Standar de Output
mov    ecx,m   ;se pasa la direcion del mensaje
mov    edx,lm   ;Se pasa la longitud del mensaje
int    80h      ;invoca la interrupcion 80h
mov    eax,4   ;Especifica la llamada al sys write
mov    ebx,1   ;Standar de Output
mov    ecx,x   ;se pasa la direcion del mensaje
mov    edx,xl   ;Se pasa la longitud del mensaje
int    80h      ;invoca la interrupcion 80h
mov    eax,4   ;Especifica la llamada al sys write
mov    ebx,1   ;Standar de Output
mov    ecx,se   ;se pasa la direcion del mensaje
mov    edx,sel   ;Se pasa la longitud del mensaje
int    80h      ;invoca la interrupcion 80h
mov    eax,[m]   ;pasamos m a un registro
mov    ebx,
-    ;pasamos x a un registro
 sub    eax,'0'   ;transforma m de String a Entero
 sub    ebx,'0'   ;transforma x de String a Entero
 add    eax,ebx   ;Sumamos los dos valores
 add    eax,'0'   ;transforma de entero a string
 mov    [result],eax;almacenamos en result
 mov    eax,4   ;Especifica la llamada al sys write
 mov    ebx,1   ;Standar de Output
 mov    ecx,result   ;Se imprime resultado
 mov    edx,1   ;Standar de Output
 int    80h      ;invoca la interrupcion 80h
 mov    eax,4   ;Especifica la llamada al sys write
 mov    ebx,1   ;Standar de Output
 mov    ecx,se   ;se pasa la direcion del mensaje
 mov    edx,sel   ;Se pasa la longitud del mensaje
 int    80h      ;invoca la interrupcion 80h
 mov    eax,1   ;Standar de Output
 mov    ebx,0   ; se especifica el codigo de salida
 int    80h      ;invoca la interrupcion 80h