News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Low-Level Assembly Tutorials

Started by ThexDarksider, June 10, 2009, 12:01:49 AM

Previous topic - Next topic

RickyS

If I knew of a 32-bit MASM syntax emulator or interactive debugger that was as helpful in teaching assembly, I would have suggested it instead. As far as I know though, such a program doesn't exist. 32-bit may be better in every way imaginable, but that doesn't make it easier to learn considering that it doesn't have near as many tools and tutorials as 16-bit.

Yeah, the specifics won't transfer to MASM. The general knowledge gained from learning about the stack, registers, instruction set, ect. will though.

Besides, it's not like he is going to start out writing complex windows programs that use 32-bit to its fullest potential. He is probably going to start out with simple console programs, which will easily transfer over to MASM32.

dedndave

QuoteLeave DOS code where it belongs, on the scrapheap of programming history, don't waste your life and time with this old junk.

awwww - lol
i miss its simplicty, though

DOS on a 8088/8087 machine - easy to master
XP on a pentium 4 - i'll probably never master it
i can still make it do stuff, though

Slugsnack

Quote from: Slayer706 on June 13, 2009, 05:14:00 PM
If I knew of a 32-bit MASM syntax emulator or interactive debugger that was as helpful in teaching assembly, I would have suggested it instead. As far as I know though, such a program doesn't exist. 32-bit may be better in every way imaginable, but that doesn't make it easier to learn considering that it doesn't have near as many tools and tutorials as 16-bit.

Yeah, the specifics won't transfer to MASM. The general knowledge gained from learning about the stack, registers, instruction set, ect. will though.

Besides, it's not like he is going to start out writing complex windows programs that use 32-bit to its fullest potential. He is probably going to start out with simple console programs, which will easily transfer over to MASM32.
try ollydbg i think you'll love it if you haven't met it already

hutch--

Emulators will never perform like a processor due to interpretation problems, missing bits and hardware limitations. The viable alternative if you want single step instructions is a debugger, Olly, SoftIce and its successors, various Microsoft tools and a few others. Nor is it the only way to learn instructions, after working with assembler language programmers for the last 11 years with MASM32 and commercial assembler language programming before that I know that going through DOS is a serious mistake, start with true 32 bit and don't learn all of the old bad habits from an ancient clapped out architecture.

DOS tools are old junk designed to work in a non-re-entrant monotasking environment, in 32 bit Windows you have multitasking so you can run multiple processes at the same time, debuggers without TSR task switching, stress testing at the same time, direct result outputs, processor usage measures, all of thos things that are not possible under DOS.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

vanjast

16Bit DOS asm is a cruise compared to 32bit Winasm.
16Bit Dos comes with a small set of Interrupt functions geared for old (very old) computers. 16Bit Dos is probably the most stable OS ever produced by MS, but with advances in technology, this cannot be guaranteed nowdays.

32bit Windows comes with a gazillion 'APIs'=more learning effort, and requires more exact programming due to the 'psuedo parallism'. Windoze is not 'stable' due to the OS itself, and incorrect developer software.
Prevention is better than cure === Never assume anything and always make sure - this is probably the most common mistake made by software developers

As Hutch says.. be careful

dedndave

the processor was much simpler as well
many people had a hard time with segmented addressing
i thought that was nothing compared to all the ins and outs of a pentium

JayPee

Hi
I have been reading this thread with interest so I thought I would put my 2 cents worth in.

I started learning assembly in the late 70's on a 8 bit zilog Z80 cpu (anyone heard of it??). In those days we had to do our own display routines with text and graphics through interrupts and direct video memory access. Many of the functions that we take for granted now through the use of API calls were not available so they had to be coded.

Later I moved to the 8088 where things programming wise hadn't really changed that much. Writing a complex bug free program was quite a big undertaking however the plus side was that there were some excellent tools available for debugging which I admit was a lot easier.

After a break of about 15 years and having forgotten a lot I decided to get back into as now I have a lot more time.
After deciding to use MASM32 I downloaded some source and had a look at what was gong on these days.

Wow what a difference - with a few lines of code I can make a pretty window with lots of controls, play music, show pictures and do all sorts of clever things.

What I am trying to say is over the last 30 years the basic principle of assembly programming hasn't change regardless if you use 16, 32, or 64 bit cpu's even the instruction set hasn't changed that much apart from the addition of specific instructions.

The basic registers still follow the same format from my 8 bit days, just now they are getting larger and most other common instruction appear to be pretty much the same.

The huge difference now is assemblers are more user friendly and the most important thing now is 90% of the work is done for you through the use of API calls. The only problem I have these days is understanding the complexity's of some of the API calls
not the assembly language itself.

For those who think 16 bit assembly is easier try writing a routine that displays a dialog box with controls the same as you find in Windozes dialog :bg

The bottom line is assembly programming in the windoze environment is much easier now and gives the amateur programmer the ability to write software that not so long ago would have been a daunting undertaking.

If you want to learn on a 16 bit environment go for it, it's good learning ground and I must admit I had the most fun programming in those days (last century lol) however if you want to produce windows app then go with the 32bit environment as its the way the future is going for now

Cheers
JayPee

Greetings From New Zealand
(Land of the Long White Cloud)