Microsoft KB Archive/29113

{|
 * width="100%"|

Code Example Passes String From C to Assembly Language

 * }

Q29113

5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a | 1.00 1.50 MS-DOS | OS/2 | WINDOWS kbprg -- The information in this article applies to: - Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, and 6.0ax - Microsoft C for OS/2, versions 5.1, 6.0, and 6.0a - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5 -- SUMMARY ======= The following code example demonstrates passing a string to an assembly language program that accesses the string, changes one character, and returns. MORE INFORMATION ================ Sample Code 1 - /* * Compile options needed: none */ #include #include void main(void); /* Prototype for main */ void extern changit(char *); /* Assembly routine declaration */ char s[10]; /* String to be changed */ void main { strcpy(s, &quot;xxxxxxxxx&quot;); /* Initialize string to x's */ printf(&quot;s = %s\n&quot;, s); changit(s); /* Call assembly routine */ printf(&quot;s = %s\n&quot;, s); /* See if string changed */ } Sample Code 2 - ; Assembly language routine -- assemble with /Mx ; Assembler 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: kbinf 1.00 1.50 6.00 6.00a 6.00ax 7.00 KBCategory: kbprg KBSubcategory: CLngIss MASMLngIss

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbPTProdChange kbvc150 kbvc100 kbCCompSearch kbZNotKeyword3 kbCComp510DOS kbCComp600DOS kbCComp600aDOS kbCComp600axDOS kbCComp510OS2 kbCComp600OS2 kbCComp600aOS2 kbCVC700DOS