ID Number: Q29113
5.00 5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a
MS-DOS | OS/2
Summary:
The following code is a program example that passes a string to an
assembly language routine. The routine will access the string, change
one character, and return.
More Information:
Sample Code 1
-------------
/* Compile options needed: none
*/
#include <string.h>
#include <stdio.h>
void main(void); /* Prototype for main */
void extern changit(char *); /* Assembly routine declaration*/
char s[10]; /* String to be changed */
void main()
{
strcpy(s,"xxxxxxxxx"); /* Initialize string to x's */
printf("s = %s\n",s);
changit(s); /* Call assembly routine */
printf("s = %s\n",s); /* See if string changed */
}
Sample Code 2
-------------
;Assembly language routine -- assemble with /Mx
;Assemble options needed: none
.MODEL SMALL
.CODE
PUBLIC _changit
_changit PROC
push bp ;Entry sequence
mov bp,sp
mov bx,[bp+4] ;Put array address in bx
mov [bx+8],byte ptr 'Y' ;Change the 9th character
;0 is the first, 1 is second...
pop bp ; Exit sequence
ret
_changit ENDP
END
Additional reference words: 5.00 5.10 6.00 6.00a 6.00ax 7.00