The next few questions deal with the following program and i…

Questions

The next few questiоns deаl with the fоllоwing progrаm аnd its implementation.  Some of the code is identified with line numbers that will be referenced in later questions. program StringProgram;#include( "stdlib.hhf" );#include( "cs17string.hla" ); static stringData : dword;procedure xOut( stringData : dword; searchFor : byte ); @nodisplay; @noframe;static dReturnAddress : dword; dCXRegister : word; dEBXRegister : word; data : byte := 'x'; // line 1begin xOut;// the next two statements are section 2 mov( CX, dCXRegister ); mov( EBX, dEBXRegister ); pop( dReturnAddress ); pop( CX ); mov( CL, searchFor ); pop( stringData ); push( dReturnAddress ); push( dEBXRegister ); push( dCXRegister ); mov( stringData, EBX ); mov( data, CL );bodyLoop: mov( [ EBX ], CH ); cmp( CH, 0 ); // line 4 je endLoop; cmp( CH, searchFor ); je foundIt; jmp incEBX;foundIt: mov( CL, [ EBX ] ); jmp endLoop;   // line 2incEBX: inc( EBX ); jmp bodyLoop;endLoop: pop( CX ); pop( EBX );ret();end xOut;begin StringProgram; stdout.put( "Please enter a string to process", nl );// the next six instructions are section 1mov( @size( byte ), AL );mov( 80, BL );inc( BL );mul( BL );mov( 0, EBX );mov( AX, BX );malloc( EBX );push( stringData );mov( 80, CX );  push( CX );       // line 3call gets;// print the stringstdout.put( "----> here is the string you entered: " );push( stringData );call puts;stdout.newln();push( stringData );mov( 0, CX );mov( ‘h’, CL );push( CX );call xOut;stdout.put( "----> here is the string after calling xOut: " );mov( stringData, EAX );push( EAX );call puts;stdout.newln();// return what the malloc'ed memoryfree( stringData );end StringProgram;