News:

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

Included libraries

Started by stepheng98, January 04, 2010, 10:30:10 AM

Previous topic - Next topic

stepheng98

Hello all.

I've come back to MASM after about a 15 year gap (8086 days) and am getting on fine.  The only question I have is about the included libraries; specifically is there a description of what all the items in the lib directory do ?  I've searched online in these forums and in the install but can find nothing.

Regards

Steve Gray

hutch--

Steve,

I moved the topic here so you would get more answers.

You get the description of the system include file by using the WIN32.HLP file for the older standard stuff and MSDN for the later stuff. For the MASM32 library the help file documents its contents and the macros available in masm32 are documented in the high level help file.

You can use a multitude of other libraries around but you must get or write prototypes for them and know what they are supposed to do.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

dedndave

hi Steve - welcome to the forum
there are thousands of functions - lol
and, what makes it tough is, ms is continually updating the documentation to reflect newer OS's, like win7

jj2007

Steve,
Don't care about the libraries unless you have really exotic needs. Just use the skeleton below - masm32rt.inc contains all you need including the model specifications etc., macros and other useful things.
\masm32\examples is a good source, and \masm32\help will keep you busy for some days, too.

include \masm32\include\masm32rt.inc

.data ; initialised data
MyString db "Ciao", 13, 10, 0

.data? ; non-initialised variables
NonInitDword dd ?

.code
hw db "Hello World at 1536 bytes", 13, 10, 0 ; with polink.exe (2560 bytes with link.exe)

start:
print offset hw, "Masm32 is easy!", 13, 10 ; the most convenient way
inkey "Press any key"
exit ; short form of invoke ExitProcess, 0

end start

donkey

Quote from: jj2007 on January 04, 2010, 02:20:16 PM
include \masm32\include\masm32rt.inc

.data ; initialised data
MyString db "Ciao", 13, 10, 0

.data? ; non-initialised variables
NonInitDword dd ?

.code
hw db "Hello World at 1536 bytes", 13, 10, 0 ; with polink.exe (2560 bytes with link.exe)

start:
print offset hw, "Masm32 is easy!", 13, 10 ; the most convenient way
inkey "Press any key"
exit ; short form of invoke ExitProcess, 0

end start

Good to know that we're writing "assembly programs" without assembly language now. Since all languages are essentially macros and preprocessors for assembly, what exactly do you call that language ? It certainly isn't assembly language.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

dedndave

it is really a flavour of "HLA", with all the macros provided in the masm32 package
they do save some typing, though
to qualify as assembly language, you should at least have a MOV instruction or something - lol

jj2007

Quote from: donkey on January 04, 2010, 02:42:29 PM
Good to know that we're writing "assembly programs" without assembly language now. Since all languages are essentially macros and preprocessors for assembly, what exactly do you call that language ? It certainly isn't assembly language.

My unsincere apologies! Steve, please replace
print offset hw, "Masm32 is easy!", 13, 10 ; the most convenient way
inkey "Press any key"
exit

with
0040101D       |.  68 00104000              push 00401000         ; /Arg1 = 00401000 ASCII "Hello World at 1536 bytes",CR,LF,""
00401022       |.  E8 2D000000              call 00401054         ; \SkelList.00401054
00401027       |.  68 07204000              push 00402007         ; /Arg1 = 00402007 ASCII "Masm32 is easy!",CR,LF,""
0040102C       |.  E8 23000000              call 00401054         ; \SkelList.00401054
00401031       |.  68 19204000              push 00402019         ; /Arg1 = 00402019 ASCII "Press any key"
00401036       |.  E8 19000000              call 00401054         ; \SkelList.00401054
0040103B       |.  E8 50000000              call 00401090
00401040       |.  68 27204000              push 00402027         ; /Arg1 = 00402027 ASCII CR,LF,""
00401045       |.  E8 0A000000              call 00401054         ; \SkelList.00401054
0040104A       |.  6A 00                    push 0                ; /ExitCode = 0
0040104C       \.  E8 E1000000              call <jmp.&kernel32.E>; \ExitProcess

stepheng98

[td][/td]
Thanks for the replies - I was after info on the bignumsdk.lib file as I was trying to set up some large integer numbers.

Regards

Steve Gray

GregL

Quote from: donkeyGood to know that we're writing "assembly programs" without assembly language now. Since all languages are essentially macros and preprocessors for assembly, what exactly do you call that language ? It certainly isn't assembly language.

That language is called MASM, the Microsoft Macro Assembler.


hutch--

 :bg

> That language is called MASM, the Microsoft Macro Assembler.

:U
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

jj2007

Quote from: stepheng98 on January 04, 2010, 07:21:25 PM
Thanks for the replies - I was after info on the bignumsdk.lib file

Steve,

Send drizz a PM, he is the author.

dedndave

you might try his webpage

http://drizz.has.it/

the !BN.7z file is a bignum library with docs and source - that may have what you are looking for

stepheng98

Thanks all, I've pm'ed drizz.  Are all the .lib files attributed to the Win32 library ?  I've opended some of the include files and they don't seem to match any of the Win32 API calls or am I missing something ?

Regards


Steve Gray

drizz

bignumsdk is a part of Microsoft DRM, the .lib is distributed with the DDK. That is all I know, i don't think there is any documentation for it.

to find which .lib is required for some api function:
on msdn for every api there is "Requirements" section that lists what .lib is required
in win32.hlp for every api there is "Quick Info" button that lists what .lib is required

The truth cannot be learned ... it can only be recognized.

stepheng98

Thanks to all that have replied - very helpful.

Regards

Steve Gray