Try this code, I took it from the normalmap shaders and took away everything apart from the bumpmapping stuff:
Code:

float4x4 matWorldViewProj;
float4x4 matWorld;
float4 vecLightPos[8]; //light position
float4 vecLightColor[8]; //light position
float4 vecViewPos;

texture entSkin1;
texture entSkin2;

sampler ColorMapSampler = sampler_state
{
Texture = <entSkin1>;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = wrap;
AddressV = wrap;
};
sampler BumpMapSampler = sampler_state
{
Texture = <entSkin2>;
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = wrap;
AddressV = wrap;
};

struct VS_OUTPUT
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;

float3 Light : TEXCOORD2;
float3 View : TEXCOORD3;
float3 Att : TEXCOORD4;
};
VS_OUTPUT vs(float4 Pos : POSITION, float2 texcoord0 : TEXCOORD0, float3 Normal : NORMAL, float3 Tangent : TEXCOORD0)
{
VS_OUTPUT Out = (VS_OUTPUT) 0;
Out.Pos = mul(Pos, matWorldViewProj); // transform Position

// compute the 3x3 tranform matrix
// to transform from world space to tangent space
float3x3 worldToTangentSpace;
worldToTangentSpace[0] = mul(Tangent, matWorld);
worldToTangentSpace[1] = mul(cross(Tangent, Normal), matWorld);
worldToTangentSpace[2] = mul(Normal, matWorld);

Out.Tex = texcoord0.xy;

float3 PosWorld = mul(Pos, matWorld);
float LightRange = 0.00001;
//light 1
float3 Light = PosWorld - vecLightPos[1] ;
Out.Light.xyz = mul(worldToTangentSpace, -Light); // L
float3 Viewer1 = PosWorld - vecViewPos;
Out.View = mul(worldToTangentSpace, -Viewer1); // V
Out.Att = Light * LightRange; // Point light
return(Out);
}
struct PS_INPUT
{
float2 Tex : TEXCOORD0;
float3 Light : TEXCOORD2;
float3 View : TEXCOORD3;
float3 Att : TEXCOORD4;
};
float4 ps(PS_INPUT psInStruct) : COLOR
{
float4 color = tex2D(ColorMapSampler, psInStruct.Tex); // fetch color map
float3 bumpNormal = 2 * (tex2D(BumpMapSampler, psInStruct.Tex) - 0.5); // fetch bump map
float4 gloss = tex2D(BumpMapSampler, psInStruct.Tex);
//light1
float3 LightDir1 = normalize(psInStruct.Light);
float3 ViewDir1 = normalize(psInStruct.View);
float4 diff1 = saturate(dot(bumpNormal, LightDir1)); // diffuse component
float shadow1 = saturate(4 * diff1);
float3 Reflect1 = normalize(2 * diff1 * bumpNormal - LightDir1); // R
float4 spec1 = pow(saturate(dot(Reflect1, ViewDir1)), 15);
float4 Attenuation1 = saturate(dot(psInStruct.Att, psInStruct.Att));

return((0.3 * color) + ((shadow1 * (color * diff1 + (spec1 * gloss.w)) * (1 - Attenuation1)) * vecLightColor[1]));
}
////////////////////////////////////////////////////////////
// Bumpmap
////////////////////////////////////////////////////////////
technique bumpmap
{
pass p0
{
AlphaBlendEnable = false;
SrcBlend = zero;

VertexShader = compile vs_2_0 vs();
PixelShader = compile ps_2_0 ps();
}
}