From: Ian Chapman Newsgroups: comp.os.msdos.djgpp Subject: Re: Assembly Date: Fri, 14 Nov 1997 12:46:43 -0500 Organization: Nortel Message-ID: <346C8E83.B42@nortel.ca> References: <64hnus$dr9 AT mtinsc02 DOT worldnet DOT att DOT net> Reply-To: ichapman AT nortel DOT ca NNTP-Posting-Host: bcarib90.bnr.ca Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 30 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Me wrote: > > I'm trying to learn Assembly and I'm having a problem. The tutorial(s) I'm > reading on Assembly are all meant for TASM Assembler and I'm attempting to I HAVE NOT IDEA AS TO WHAT THESE ASSEMBLERS ARE. > do the compiling with NASM Assembler. Now, I believe I can figure out the > syntax differences but, my problem is understanding the differences between > 16 bit real mode and 32 bit protected mode. For example, this piece of code GET AN INTEL HARDWARE MANUAL FOR THE PROCESSOR. PROTECTED/REAL MODE IS AN 80XXX THING ONLY. THE 8088 THEIR 1ST FAMILY MEMBER HAD SEGMENT REGISTERS. THESE WERE EXPANDED INTO A MEMORY MANAGEMENT SET UP WITH THE 80286. I THINK ALL THESE PROCESSORS START UP IN REAL (8088) MODE AND ONCE YOU SET UP THE SEGMENT REGS/MEMORY MANAGEMENT STUFF AWAY YOU GO IN PROTECTED MODE. THE 8088, 8086 AND 80286 ALL HAD 64k SEGMENTS. THE SEGMENT SIZE COULD BE SET ON THE 80386 FROM 1 BYTE TO A MAX OF YOUR MEMORY SIZE. THIS WAS A GOOD MOVE AS IT GOT THE INTEL OUT OF SEGMENTATION. IF YOU DO NOT GET THE SEGMENT/MANAGEMENT STUFF SET UP YOU BOMB. > is supposed to print "hello world" to the screen (and yes, I know a printf > function in C would be much easier but, just entertain me, ok...?) >