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
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.
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
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
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.
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
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
[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
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.
:bg
> That language is called MASM, the Microsoft Macro Assembler.
:U
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.
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
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
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
Thanks to all that have replied - very helpful.
Regards
Steve Gray