News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

New User - Got the buzz of assembler again

Started by PaulHobbs100, July 28, 2016, 02:44:55 AM

Previous topic - Next topic

PaulHobbs100

Hi All
I am a new member, this is my first post , basically to introduce myself...

Professional software development manager 25+ year experience, hands on c#,VB, SQL, MVC, WPF , HTML etc.

Came across masm32/Iczelion turorials recently and got the buzz of assembly I lost after 6502/Z80 era when I moved to high level languages and full Microsoft stack.

If anyone can guide on tutorials using Masm with SQL server, Oracle ( even Access lol ) as crunching and transforming GigaBytes of data is my thing! - though I am sure I will play with the UI and common controls.

I see there are many assemblers out there MASN, NASM, GoAsm, FlatAms etc. I am planning to stick with MASM32  to get the 'cobwebs' out of my head, then would like to explore 64 bit ? Is there as MASM64 package available ?

Hoping to contribute constructively to forum once I am back up to Assembly speed ( remember my last professional assembly coding was on 6502 and Z80 !!)

Regards
Paul

 



fearless

Hi, hows it going.

mabdelouahab has some interesting stuff with using Sql server and masm: http://masm32.com/board/index.php?topic=5299.msg57516#msg57516


For 64bit stuff these are your best starting points:

ML64 Development Code http://masm32.com/board/index.php?board=53.0
64 Bit Assembler http://masm32.com/board/index.php?board=13.0
HJWASM Development http://masm32.com/board/index.php?board=51.0

There isnt a specific package yet, couple of posts relating to some tools that can be downloaded or might be already included with other MS packages (Visual Studio etc) that combined can be used to effectively create a MASM64/x64 package (Build environment for ML64 - http://masm32.com/board/index.php?topic=5527.0, JWasm64 with RadASM - http://masm32.com/board/index.php?topic=4162.0)

Couple of various solutions by different users to making/obtaining the 64bit libraries (Libraries, includes and macros for ML64 - http://masm32.com/board/index.php?topic=5444.0)

And again a few options for using include files for x64 (WinInc with HJwasm/Jwasm - http://www.terraspace.co.uk/hjwasm.html#p9, ToutEnMasm's Full SDK Include Project - http://masm32.com/board/index.php?board=45.0, Build a set of 64 bit libraries - http://masm32.com/board/index.php?topic=5518.0, Renaming tool for Vasily's include files - http://masm32.com/board/index.php?topic=5494.0)

Hopefully that gives you some help, good luck and welcome to the forum.

jj2007

Welcome to the Forum, Paul :icon14:

If your "crunching and transforming GigaBytes" is really in the 2GB+ range, then Masm64 could be interesting for you; there is a dedicated subforum. If your memory requirements are less than that, it's not worth it: Masm64 is not faster than Masm32, but much more complicated.

rrr314159

Hi Paul,

Using SQL Server, etc, is the same with assembler as any high-level language. You have to make the same calls in the same way. There is sample code around, and tutorials, others can tell you where.

There's no specific MASM64 package but a lot of discussion about it. Check out the "64 bit assembler" forums available from the home page. Probably you should first get up to speed on 32-bit though. Almost everything you learn about 32-bit is directly applicable to 64.

Many of the other assembler packages available, like FASM, have their good points. But you've made the right decision to concentrate on masm32, it's by far the best-developed and supported package for beginners especially. A lot of experts are happy with it too.

Have fun!
I am NaN ;)

hutch--

Hi Paul,

Welcome on board. It makes good sense to start with 32 bit code, its a bit simpler and is certainly very powerful when written properly. We have a 64 bit section that will expand over time and you have a number of choices with 2 of our members developing forks of the Watcom assembler and they both seem to be making good progress. A few of us are working on ML64 and while it is a bad mannered old pig, its starting to shape up OK and fortunately still has the MASM macro engine that makes many things possible.

mineiro

Welcome sir PaulHobbs100
Not sure if helps but I remember some sqlite examples on old board.
http://www.masmforum.com/board/
I'd rather be this ambulant metamorphosis than to have that old opinion about everything

Magnum

Quote from: PaulHobbs100 on July 28, 2016, 02:44:55 AM
Hi All
I am a new member, this is my first post , basically to introduce myself...

Professional software development manager 25+ year experience, hands on c#,VB, SQL, MVC, WPF , HTML etc.

Came across masm32/Iczelion turorials recently and got the buzz of assembly I lost after 6502/Z80 era when I moved to high level languages and full Microsoft stack.

If anyone can guide on tutorials using Masm with SQL server, Oracle ( even Access lol ) as crunching and transforming GigaBytes of data is my thing! - though I am sure I will play with the UI and common controls.

I see there are many assemblers out there MASN, NASM, GoAsm, FlatAms etc. I am planning to stick with MASM32  to get the 'cobwebs' out of my head, then would like to explore 64 bit ? Is there as MASM64 package available ?

Hoping to contribute constructively to forum once I am back up to Assembly speed ( remember my last professional assembly coding was on 6502 and Z80 !!)

Regards
Paul



Welcome Paul.

A fine set of programmers are very happy to help you. :-)

Take care,
                   Andy

Ubuntu-mate-18.04-desktop-amd64

http://www.goodnewsnetwork.org

PaulHobbs100

Thanks for the Welcome

Just to clarify comments above.

The typical size of data I was crunching and transforming were typically 40-60Gb, so point well taken on ML64. I used to do it in SQL server, stored procs with embedded C# functions, typically taking around 6 hours to run depending on level of medical data complexity.

Before I could begin even contemplating attempting  the above in assembly I need to learn to 'walk' in assembler first before 'running'. As stated my last professional assembly was on 6502/Z80, and yes I will stick with MASM32 to rebuild my assembly foundation knowledge.

I hope to be able to contribute constructively once I can loose years of '.NET' fluff  out of my head. Be patient may tale a while to get up to speed.

All advice welcome
Regards
Paul


GoneFishing

Hello and Welcome,

Quote from: PaulHobbs100 on July 29, 2016, 08:31:02 PM
...
The typical size of data I was crunching and transforming were typically 40-60Gb, so point well taken on ML64.
...

From my non-programmer's  POV it's better to start with  MASM32  as 64 bit development  is on its early stage  here on the forum .
I guess you're looking for ways to speed up Big Data processing, yes ?  If so  ,  as an alternative to speed gains achieved by use of assembly language     I want to mention Parallel Data Processing with CUDA ( there're even packages written completely in .NET )

BTW you're already able to " contribute constructively " because we have big  problems in understanding some concepts of .NET platform  ( for example see  this thread )

Best of luck in MASM

jj2007

Quote from: PaulHobbs100 on July 29, 2016, 08:31:02 PMThe typical size of data I was crunching and transforming were typically 40-60Gb, so point well taken on ML64. I used to do it in SQL server

Paul,

As mentioned above, 64-bit code is hardly faster. For such large chunks of data, you would use SIMD (SSE2 etc) anyway, and that can be done in 32-bit code, too.

The question here is really how much you MUST put into one contiguous block of memory to perform your number crunching. If you have 60GB of RAM available, and you need it, great, ML64 is your choice. If you can process your data sequentially, in chunks of, say, 1GB, then Masm32 is probably a better choice.

mineiro

#10
Quote from: PaulHobbs100 on July 29, 2016, 08:31:02 PM
The typical size of data I was crunching and transforming were typically 40-60Gb, so point well taken on ML64. I used to do it in SQL server, stored procs with embedded C# functions, typically taking around 6 hours to run depending on level of medical data complexity.
You can get benefits from masm32 library functions to speed up code and remove overheads from HLL.
Have some benchmark tests (duels not fights) into this board that you can get as a reference, and because calling convention have changed from 32 to 64, so some of then can be rewriten to your target plataform.
You can also search for 'Agner Fog' functions/libraries and optimize manuals to C++ and ASM. And because you have a base of C#, I think it's just a jump to you.
----edited----
Other options are open a sql database as a raw way and extract data from that file format to process. Other choice is to export datas to txt file and process too. Appears that internally sql database holds chunks of 4gb(IAM chains).
I'd rather be this ambulant metamorphosis than to have that old opinion about everything

PaulHobbs100

Quote from: GoneFishing on July 29, 2016, 09:37:16 PM
Hello and Welcome,

Quote from: PaulHobbs100 on July 29, 2016, 08:31:02 PM
...
The typical size of data I was crunching and transforming were typically 40-60Gb, so point well taken on ML64.
...

From my non-programmer's  POV it's better to start with  MASM32  as 64 bit development  is on its early stage  here on the forum .
I guess you're looking for ways to speed up Big Data processing, yes ?  If so  ,  as an alternative to speed gains achieved by use of assembly language     I want to mention Parallel Data Processing with CUDA ( there're even packages written completely in .NET )

BTW you're already able to " contribute constructively " because we have big  problems in understanding some concepts of .NET platform  ( for example see  this thread )

Best of luck in MASM

Happy to help any way I can re .NET. I'll take a look shortly

PaulHobbs100

<quote>
BTW you're already able to " contribute constructively " because we have big  problems in understanding some concepts of .NET platform  ( for example see  this thread )
</quote>

I am not an expert in multihreading, locks, contention and marshalling. The bible I always refer to is....
C# in a nutshell - Albabari, published by O'Reilly
( I will also copy this note to the thread you mentioned)

Regards