Which Version of MASM are you Using? - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Which Version of MASM are you Using?

Description:

Note that the extension of the file is not typed on the command ... This creates an executable file. If you don't put any of the extensions, it will ask you. ... – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 15
Provided by: janemo8
Category:

less

Transcript and Presenter's Notes

Title: Which Version of MASM are you Using?


1
Which Version of MASM are you Using?
  • 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
  • Cgt dir MASM
  • The lab has MASM 6.15 installed.

2
Assembling and Linking Using Masm613
  • Template for Programs if you are using 6.13
  • Hello.asm
  • You have a choice of how to assemble
  • As explained in the lab
  • Masm.exe
  • Link.exe
  • CV.exe

3
What to type on the Command Line to assemble
hello.asm
  • Cgt Path c\masm613\bin
  • Cgt Masm hello
  • 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

4
MASM.exe
  • In lab, you type
  • Cgt masm hello,hello,hello
  • This is (source filename, object filename,
    listing filename)
  • MASM.exe is an executable file that has a lot of
    options.
  • /Zi (generates Codeview information in object
    file)
  • In order to run codeview, you type
  • Cgt masm /zi hello, hello, hello
  • Can just commas to use default values

5
What to type on the Command Line to Link
Hello.obj
  • Want to link Hello.obj with any external files
    used in the source code (none needed)
  • Want to create an executable file
  • Cgt Path c\masm613\binr
  • Cgt Link hello
  • 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.

6
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
  • Cgt Link /CO hello,,,,,
  • This is (objectfile, executable filename,
    mapfile, libraries, deffile)

7
Appendix D and QH
  • Appendix D in the 4th Edition has the options for
    LINK listed.
  • QH Microsoft Helper
  • You type
  • Cgt qh

8
Where is Your Irvine library
  • You type
  • Cgt dir c\irvine\i
  • 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
  • Cgt link hello,,,irvine,,
  • Link should give a series of questions if no
    commas

9
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
  • Options listed in Appendix D

10
Assembling and Linking with MASM 6.15
  • You type
  • Cgt path c\masm615
  • Cgt masm /Zi sourcefilename,,,
  • You type
  • Cgtlink /CO objectfilename,,,c\masm615\lib\irvine
    16,,

11
Assembling and Linking with MASM 6.15
  • More details are hidden
  • Some lines of code are to removed from the
    template. (These lines of code are included in
    the Irvine.INC file)
  • Template for MASM 615
  • You type
  • Cgt path c\masm615
  • Cgt make16 hello

12
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.

13
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

14
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
Write a Comment
User Comments (0)
About PowerShow.com