0xE8 is used with relative address. So the following instruction is encoded as E8 00 00 00 00
call label
label:
Some encodings starting with 0xFF can be used for indirect calls where address of the destination is stored in register or memory. If you want to call procedure at specific address, you can do the following:
mov eax, 0x12345678 ; address of procedure (not relative)
call eax
0x9A encoding allows you to make far calls that update CS-register as well. So for example:
call 0x1234:0x55667788
updates value of the CS-register to 0x1234 and the value of the instruction pointer to 0x55667788. Return address is also pushed to stack with values for both CS and instruction pointer.
For more information about different encodings I recommend this reference.