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
int
can only hold a 16-bit signed integer and the number you tried to assign tofilename
is way outside its range. Asint
variables are two bytes long, they're not all that useful for storing file names. Instead you should store the name in an array ofchar
like 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: