I think you mis-understand what I was posting (or perhaps I mis-understood you).
You cannot view MC7 in the IDE this is purely what is downloaded or uploaded to the IDE & file, the IDE interprets the MC7 code into a sort of assembly language and vice versa, there is a way of using MC7 directly (well certainly in S5 as I worked with an engineer who originally worked for Siemens in Germany.
To actually execute an MC 5 (or possibly MC7) as I'm not sure you can in S7, you can load the hex value of an instruction into a flag word or DW, process the instruction which will run the code.
Cannot remember exactly how it was done but the engineer I worked with showed me it was a way of running code that changes (very dangerous) but worked.
For example; create a datablock & put in the hex MC5 code in the words in an FB use a system instruction (cannot remember which) but you loaded the DW with the MC5 hex code, process a system instruction that ran the MC5 instruction.
For example (not a real one as I cannot remember exactly how it is done)
C DB 10 //Call the DB
L KH 83A081 T DW 10 // Load the MC5 hex code into DW10
xxxxxx // Process the DW with a system instruction i.e. run the instruction
Now
if you change the MC5 hex value on the next scan it would change the instruction. seen it running so in effect, code that modifies it'self.
There were things I learned that I did not know existed, one was where a datablock was created on the fly (normally simple i.e. in a startup OB generate the datablock), however, in this one application the engineer wanted a DB as big as possible for a printer buffer, so in the warm startup OB, there was a check on spare ram after program loaded, generated the DB to take up virtually all spare memory, this was a problem though, if for some reason the program was lost, if someone had taken an upload of the program & tried to download it, it failed on out of memory.
You had to delete or not download the DB, do something like cold re-start, then a warm restart via the PG, once generated, you could not make changes to the program as the memory was full, S5 (and probably S7) requires spare memory large enough to be able to download a block, the system does not overrite the existing block but puts it into spare ram, remove the header in the table for the old block then replace it with the new pointer to the updated block, originally in S5 after so many downloads of blocks you had to compress the memory as it would fill up (i.e. did not remove the old block) this was changed on later versions where every time a block was downloaded it compressed the memory i.e. got rid of the old blocks.
Also see the MC7 code for a block call with passing of parameters below.