News:

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

newbie: masm32 is for Win98?

Started by thomas_remkus, June 02, 2005, 01:49:35 AM

Previous topic - Next topic

thomas_remkus

I am a little confused. The license information that hutch mentions about masm32 is for the WIN98DDK. How does this effect performance when running these applications on Windows2K or 2k3? I would think that the masm32 compiler would be a little more up to date than just win98.

With this said, is the VCToolKit a better compiler for masm projects because it's more up to date?

Lastly, I notice that there's a 127b include for windows and a service pack for 8.2 I think called 2b. What's the proper order of installation? 1st masm32 8.2, then 2b service pack, then the 127b include?

thanks,
thomas

Mark Jones

Hi Thomas, welcome to the group. :)

Since Win98, there has been very few functional updates to ml.exe (the MASM macro assembler). I'm not entirely sure about the license but think it says that ml.exe is legally borrowed from the '98 DDK. Therefore apps generated with this version of ml.exe function nearly identically to those generated by newer DDK's. Only with the new 64-bit architecture will you need a new macro assembler and MS is working on that right now.

For the installation, the SP2a includes the latest windows.inc. Be sure to read the installation notes of the SP2a update very carefully, it can be tricky. :)

Regards,
Mark
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

thomas_remkus

Thanks Mark. That answers some questions.

Looking as some of the samples there seems to be quite a bit of my C/C++ knowledge that I can leverage into masm32 once I get situated. Two major questions:

1) Do we have the ability to work with dialogs?

2) More importantly, how to handle COM. Especially database access to SQL Server from ADO.

Once of the projects that I have is to create an extended stored procedure for SQL Server (which is a DLL with a standard method signature) and do some specialized work. Everything is great but I must have a recordset loaded from inside the DLL so that would mean my masm would need to load ADO I guess.

My project is NOT due tomorrow. I have time to get this done right. So if you could point me to some ADO or database connections to SQL that would be helpful. I have not seen anything about using COM with masm.

thomas

hutch--

The licence for the MASM32 project is available at www.masm32.com. The licence for the Microsoft binaries is contained in the MASM32 project and compliance is a condition of using it.

Dialogs are done as normal with a dialog editor but masm32 also has a macro system for direct in memory dialogs as per the OS specification.

A number of authors have done work on COM but COM is starting to go out of date with .NET taking over and it is not well supported in mainstream low level programming. With both ADO and COM, you will probably have to roll your own although COM does have some support if you want to look for it.

As Mark suggested, install masm32 version 8.2 then install the service pack number 2 being careful to get it right and you will have the most up to date material from the project.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Mark Jones

Oh, sorry Hutch, I didn't mean that I didn't even look at the license. Just that it's been awhile. :)

Thomas, I did a google search for ADO COM MASM32 and found this interesting link: http://www.japheth.de/dwnload2.html
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

Vortex

Hi Thomas,

A small note, The VC toolkit 2003 offers the VC++ compiler coming with the VS .NET 2003 package. VCToolkit doesn't contain any version of ml.exe, the macro assembler.

thomas_remkus

Mark, that site http://www.japheth.de/dwnload2.html is perfectly awesome for samples. Some of that is exactly what I'm looking for. The ISAPI has the possibiility of being just fantastic.

As a professional developer there are many things in my toolkit as required by the project. So TSQL, VB6, VB5, C++ 1.5, VS 2003, VC++ 6, MFC, ATL, HTML, VBScript, jatta, jatta, jatta. My main claim to fame in my work has always been performance. Right now, I don't know really squat about MASM but have always been interested. I actually have several projects that could use MASM so I'm trying to start someplace. Honestly, this is IMO the only place on the web that has this kind of resources and knowledge. I feel lucky that there are so many people here that as willing to share their knowledge.

With that being said, there are many articles here that I'll have to sort through to really feel like I'm even starting. C/C++ is used in my daily work, so I'm looking for a translation table from what I know to what I want to know. Basics ... all the basics. For example, when I see "int i = 0;" this means "xxxxxx". When I see "if (int i = 0; i < 10; i++)" that means "yyyyyyy". I know these are most likely not going to be one liners. That's fine. I am serious about learning MASM because I believe it will give me a knowledge about the programming I have already been doing in a way I never knew before. It will also be a way for me to understand my art from others that are excited about it like I am.

Uh, I'm a 32 year old male. I have a wife and kids. I went to SMU in Dallas Texas. I still think that BAT files can be used in production systems. I believe that DLLs are the frame of programming. I think that the lower the language you go the more complex it becomes on manipulating strings. I think regular expressions are fantastic when you need them. I didn't used to think that .NET was the wave of the future ... but not all waves are good. I think that java did their language right from a syntax point of view and that's it. I don't watch any sports. I play chess every chance I get. I admire video game programmers, but I don't really want to ever be one. I think that almost no end user is impressed with your software because of the tools you created it with but rather what it's doing for them when they click your buttons. I miss the Lone Ranger. I believe COM is sexy. I also believe that while a language can be powerful, many people will make/break the tool if the IDE is not strong and to their liking. "Thomas" is my real name. NT 4.0 is an awesome OS. Trackballs over mice. I still use floppies. I love Knoppix. I own a Dell PowerEdge 2650 and a Dell PowerEdge 2850 ... they are my friends.

thomas

roticv

That's a great introduction.  :toothy

Can I say that I am a male aged 17 and do play chess once in a while? Haven't been coding much in asm recently. I have been coding mainly in C, solving questions on spanish judge.


Vortex

Hi Thomas,

You like to play chess? Me too. :)   It's such an attractive game that ex-champion , the legendary Bobby Fischer is thinking to return back to chess.   

thomas_remkus

Thanks to all so far. I have my environment setup a little more and I have created my first "makeit.bat" file and have a hack of an example compiled and working.

Bobby Fischer would like to return as long as he feels that he can convince some IMs that chess960 is worth playing. For those that don't know, that's where you take all the pieces behind your pawns and put them in random positions before the match. Fischer things that too many people rely on openings that shouldn't be memorized in the first place and not enough on skill. I think he's right, but I'm no IM. I'm new here but I think this topic is a little out of the Campus group so I'll not rant too much.

OK, there's no real "books" on just MASM32 I have found. There's this HLA book but because the only the vowel is the same, I am presuming that this is very different. So I am collecting information as I go. Very interesting and the examples are far too complex for me right now. I again wish there were samples of a program in C and then the exact same thing in masm32 so my learning curve could be shorter. Not asking, just mentioning.

thomas

Win32Coder

Thomas,
I forgot who originally uploaded this file but the C source is shown in the comments after each instruction.

[attachment deleted by admin]

AeroASM

Quote from: thomas_remkus on June 02, 2005, 01:56:38 PM
I'm looking for a translation table from what I know to what I want to know. Basics ... all the basics. For example, when I see "int i = 0;" this means "xxxxxx". When I see "if (int i = 0; i < 10; i++)" that means "yyyyyyy".

There are three basic things in programming: variables and decisions. Loops are made because performing operations (adding 1) on variables and then taking a decision on whether to loop again or break.

Variables can either be put into the .data or .data? section where they are "global" to the program or you can put them on the stack with the LOCAL keyword. If you need massive variables (1Mb+) then you can dynamically allocate memory form the heap with GlobalAlloc.

Decisions are all made by looking at the flags register. The flags register has many flags which are set by arithmetical operations or compares. You can use this information with the Jxx instruction e.g. jnz means take a jump if the Zero Flag is not set.

GregL

Thomas,

  There is a book that is pretty good. It is a book used for college classes. It covers 32-bit MASM for 32-bit Windows. It's a bit expensive, but you can get used ones. Here is the link for it on Amazon.com:

Assembly Language for Intel-Based Computers - Fourth Edition

The book 'Introduction to 80X86 Assembly Language and Computer Architecture' by Richard C. Detmer is OK too.

Also the 'MASM 6.1 Programmers Guide' in PDF format has very good information in it:

http://www.visualassembler.com/downloads/MASM61PROGUIDE.pdf

Something you might find interesting, I took a sample C program and re-wrote it in MASM32. It uses 'msvcrt.lib'. I posted it here, 9th post down:

http://www.masmforum.com/simple/index.php?topic=1638.0 

Have fun.