I'm trying to figure out how to use DB variables from ASM into Inline ASM C++
I have this ASM code:
filename db "C:\imagen.bmp"
eti0:
mov ah,3dh
mov al,0
mov dx,offset filename
int 21h
and in C++:
//ASCII of C:\imagen.bmp plus zero in the end because of int 21h
int filename=6758921051099710310111046981091120;
asm{
mov ah,3dh
mov al,0
mov dx,offset filename
int 21h
}
Is this is correct?
The type
intcan only hold a 16-bit signed integer and the number you tried to assign tofilenameis way outside its range. Asintvariables are two bytes long, they're not all that useful for storing file names. Instead you should store the name in an array ofcharlike this:The array will include a zero byte as its final element, as normal for strings in C++.
You could also replace entire thing with: