Like most function files, the MASM.exe file is constantly updated. In production, typically some date is chosen as a production date, but changes continue. If you are using only the Purple version of the Irvine book (3rd Edition), you are probably using MASM 6.13. If you have the 4th Edition of the book, you are using MASM 6.15. To be certain, type from the command line
C:> dir MASM*
This assumes that masm.exe is in the bin subdirectory. Note that the extension of the file is not typed on the command line (it is assumed to be asm) This function creates an object file (file containing machine language code binary file) named hello.obj
MASM.exe
In lab, you type:
C:> masm hello,hello,hello This is (source filename, object filename, listing filename)
This creates an executable file. If you dont put any of the extensions, it will ask you. This assumes that Link.exe is located in the binr subdirectory.
Link.exe
16-bit linker supplied with Microsoft Assembler. Link.exe also has many options. Use /CO to add Codeview information into the executable file. You type: C:> Link /CO hello,,,,, This is (objectfile, executable filename, mapfile, libraries, deffile)
Appendix D and QH
Appendix D in the 4th Edition has the options for LINK listed.
QH Microsoft Helper
You type: C:> qh
There should be a file called irvine.lib This is the file of irvine library functions. It must be linked with your object code if you are using any of the irvine libraries (Writeint, RandomRange, etc.) Copy irvine.lib to your current directory You type:
C:> link hello,,,irvine,,
ML.exe
When you type masm , another program is invoked. ML
Assembles and links one or more assembly language source files. The command line options are case sensitive. ML options fn options fn /link linkoptions
Irvine16.INC
This is a text file that can be modified. You can modify it to meet your needs. Note that the model size is set. That line could be changed. Also with the .386 line.
Memory Models
SMALL memory model
One code segment(64K) and one data segment(64K). All code and data are near, by default. MEDIUM memory model Multiple code segments and a single data segment
Lab 6 changes
Part A does not have to be changed to use MASM 6.15 Part B
Note that Writeint does not allow outputs for bin, octal, unsigned, etc (use WriteBin, WriteDec, WriteHex, WriteInt instead) Need to add Include Irvine16.inc
Part C
Again need to change Writeint to Writedec Need to add Include Irvine16.inc