I don't know, since I have never written a program that uses both real and protected mode, I have always used either one or the other.
My advice to you if you want to take up assembly programming is to get
NASM, it's free and comes in DOS, Win32 and Linux flavours. Start by writing small DOS-16 COM programs (no MZ header) you will be limited to just 64K for your code + data and believe me just 64K is 1000s of lines of code in ASM. Your data is unlikely to be >64K unless it consists of graphics or sound.
You will be amazed at how small assembly is, the binary is now smaller than the source! (unless you linked it with another lib)
Then when you've mastered that you can move on to protected mode. Start of by writing console programs for Win32, DOS32 or Linux. If you want your Win32 programs to run under plain DOS i.e. FreeDOS use
WDOSX a combination of DPMI and a powerful console mode Win32 API emulator. It's retardedly simple to use,in goes a console mode Win32 binary and out pops a DOS program complete with built in DPMI and Win32, it also features built in compression so a large program will take up less disk space.
Then if you're realy experianced you can move onto Win32 GUI and Linux X11 GUI applications but don't ask me.
I started programming in BASIC (BBC, QBASIC, VB-DOS WIN-VB), then moved on to assembly, I had a go at C and never liked it, I find asm far easier than C!
I have not programmed for over 4 years now, because I totally lost interest in it when I did an A-level computing, and I am now completely out of practice.