Just want readers happy as more larger font.
My (and many others) theme is mostly blue, so your choice of font contrasts badly against the rest of the page. Spend more time thinking about asking your question rather than thinking about how it looks
.
Dropping to ring3 from ring0 is fairly straightforward. One method you can use is to set your segment registers - all except SS and CS. Once this is done, you can push the userspace stack segment, the userspace stack, EFLAGS, userspace CS, your desired EIP, and then simply iret. Note this order is not necessarily correct
.
Before you can do all that you will need a TSS in order to get back from ring3 to ring0. A potentially useful
wiki page already exists, and links to an article which even has some free assembly code for the move to ring3. Note though that you don't want to copy & paste from this article; you need to understand what you are doing.
The best thing you can do right now, before you write any more code, is read the Intel manuals. All information related to ring transitions will be in Volume 3A. The description of the IRET and RETF instructions will be in volumes 2A and 2B.
Another way transfer to ring 3 other than RETF or IRET?
This sounds like a great opportunity for you to do some research in the manuals, and as an added bonus you'll be a bit more familiar with them
.