mightyware.com

  • Economy
    • EconDelta

      Economic simulation of USA.

    • Defense Maps

      Satellites of world hotspots.

    • Federal Budget

      Manage the Federal Budget yourself.

    • California Budget

      Budget for the State of California.

    • New Jersey Budget

      Budget for the State of New Jersey.

    • AGW Calc

      Explore the costs of energy savings.

  • Fiction
    • Calm Inside My Mind

      A Poem on a Summer Night Alone

    • Kamerad

      A Poem About Evil as a Choosing of Death

    • Jesus and Ford

      The Parable of Jesus and Ford

    • Shaky Hands

      A Man Makes a Simple Delivery

    • Thanks BP

      Mock Advertisements about our New Gulf

    • Viva La Vida

      Parody of Viva La Vida

    • Weird Tales Unit #1

      A Golden Age Era Detective / Alien Story

    • Weird Tales Unit #2

      Dream for of Ms. Winston

    • Yankee Protectionism

      How Protectionism Won the Civil War

    • For Your Kindle

      Short Stories for Your Kindle

  • Gallery
    • Afghanistan

      Selected public photos from Afghanistan

    • 2000 Calorie Dodge

      Driving Route 202 for the Fast Food Meal

    • Kalmar Nyckel

      Details of the Kalmar Nyckel

    • Manhattan Then and Now

      Reflecting the Mahattan Project on Today

    • Pufferbelly Days

      Steam Engines on the Wilmington and Western Railroad

    • Sonic

      A Trip to Sonic

    • Whiskey Reviews

      Reviewing Top Shelf Whiskeys

  • Technology
    • CPP vs C#, Arrays

      Benchmarking C++ vs C# on Windows

    • Win32 Memory Allocation

      Memory allocation performance

    • Win64 Calling Convention

      Windows X86-64 Calling Conventions

    • Xeon

      Building a Dual Xeon Workstation

    • YASM on Windows

      Installing YASM in Visual Studio 2008

  • Downloads
    • 3D Baby Typing Blocks

      Teach Baby How To Type

    • Independent

      Simple Arcade Shooter

  • mightyware.com
    • Home

      The mightyware home page

    • About

      The mightyware concept

Configurating YASM for Visual Studio 2008

64 Bit Assembly
Installing YASM
Solution Structure.
Assembler Options
Linker Options
Project Build

64 Bit Assembly

Whether you want to write your own programming language, or get a feel for how efficient a system is, an understanding of assembly language is useful. A great way to gain an appreciation of what a computer is actually be doing, assembly language is the ultimate in hard core, old school programming. We use YASM to do 64 bit programming, because the MASM tool that ships with Visual Studio 2008 does not work well in 64 bit land.

Installing YASM

It is fairly easy to install YASM. Download YASM from YASM Web Site. The directions for installation are also on the same site at YASM directions. We placed our yasm EXE in in C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin folder, as shown below.

Solution Structure.

This is a picture of a Visual Studio 2008 solution set up for integrated assembly language. This is a heck of a mess, compared to what KDE gives you on Linux, but it works. Visual Studio made the x64 directory for us when we selected it as a build target. You can see .asm files, for assembly language, in the root folder, along with C and C++ files.

Assembler Options

Yasm lets you select which syntax you want your assembly file to use. Right click on the asm file or the proj file, like you would for C++, to select which assembler you prefer to use. Note that you do not have to do anything special to get your assembler obj files to link. They just need to wind up in the same directory as all the C and C++ obj files. So, we tell yasm that the obj output should be "$(IntDir)\$(InputName).obj", as shown below.

Linker Options

You do not have to do anything special with the linker to link YASM generated obj files.

Project Build

Output from Yasm shows up in the Output tab of your build, just like everything else built in Visual Studio. For our brief experimentation, clicking on an error takes you to the correct line.