As far as I can tell (admittedly I'm no expert in assembly), you are registering the selectors, but never use it.
sel_registerName
is declared like this:
SEL sel_registerName(const char *str);
Behind the scenes, the c-string is interned, and a new pointer (from a hash table of selectors) is returned, which then must be used for future method calls, like this:
SEL alloc_sel = sel_registerName("alloc");
id newObject = objc_msgSend(target_class, alloc_sel);
See Why can't we use C-strings as SELs? as to the why of this question.