It depends on what exactly the context is. What type of binary is it? Are you talking about on-disk or in-memory? What os are you on?
I would highly recommend you use a disassembly engine library which makes most of these questions moot. Capstone is nice.
If you really want to do it by yourself, you can. For instance, if your target is a PE file, you'll need to map it into memory. This means understanding the PE format or using a library such as PeLib. Once you've done that, you'll want to search for the string in question. This would generally be in the ".rdata" section (marked for RO) if it's a constant string, or in the ".data" section (marked for RW) if it's a mutable string. Once you've found it, you'll need to scan through the ".text" section (marked for RWE) for the address that corresponds to the string.
There's a few caveats here. First, these section names and protections may be different if the binary is packed, written in managed code, or compiled by a non-standard compiler. These same things can lead to greatly complicating the task.
Second, you will have to deal with ASLR. The binary will either have ASLR enabled, meaning there is a relocations table which needs to be parsed and applied to the binary to get the final addresses; or it won't have ASLR, meaning all of the addresses will assume
0x00040000 as a base and you will need to take this into account when calculating the address of the string once you've found it (oh, you mapped the binary at
0x0006500 and the string was found at
0x00006516? You must scan for address
(0x00006516 - 0x0006500) + 0x00040000). This is similar to what you need to do when applying relocations.
One thing to keep in mind is that relocations can be useful. Generally, when they exist, they will tell of every single offset that uses an address in the binary relative to the base address. So you might also just scan each offset that is relocated, checking for one whose proper address resolves to one containing your target string.
I wish I could be more helpful, but this is what I can offer with the information you've provided. Hopefully it puts you in the right direction.