Hola, como te había comentado EternalIdol,
http://www.cplusplus.com/reference/cstdio/printf/
cinvoke printf, szFORMATO, edx
donde szFormato podría ser:
szFORMATO db "Este es el valor de DX: %i",0
recuerda que como es 32 bit, es dificil que pases como parametro DX solo, tienes que pasar el registro EDX completo.
Para que no haya problemas, recuerda hacer XOR EDX, EDX al inicio, asi no tienes problemas con el bit alto. y Si modificas solamente DX, EDX tendrá el mismo valor.
i% significa que vas a pasar como parametro un nro entero, un INT.
printf va reemplazar %i con el valor del siguiente parametro.
Si usas por ejemplo "%i, %i" tendrás que pasar como parametro 2 enteros.
Seria algo como
ccall [printf],szFORMATO, edx
szFORMATO es "%i",0
Puedes programar en fasm en 16bit tambien.
PE console una aplicación con consola de 32 bit. No exiten interrupciones alli.
En Fasm puedes programar en 16bit tambien, si mal no recuerdo era format MZ, asi obtienes una aplicacion para DOS (que es consola)
Saludos.