/* stringexec */
#include <dos.h>
char *x_str = "\xB4\x0E\xB0\x41\xB7\x00\xCD\x10\xCB";
/*
Assembly listing of x_str :
MOV AH,0Eh ; put 0Eh in AH register
MOV AL,41h ; put 41h (Hex ASCII value of 'A' in AL register
MOV BH,00h ; put 00h in BH register (current video page)
INT 10h ; call interrupt 10h
RET FAR ; far return to come back in main routine
*/
void main()
{
char far *xx_str /* declaring a far pointer to char */
/* setting the far pointer using MK_FP( )_macro */
xx_str = (char far *) MK_FP(_DS,x_str);
printf(" This is the character : ");
/* calling xx_str as a far function using the cast */
(*((void (far *)())xx_str))();
}