TASM 5 Intel 8086 Turbo Assembler Download

A current version of TASM (Turbo Assembler) is rather hard to come by on the Web. Below is a .zip file you can download that is ready-to-go with TASM 5. I promise it worked for me for a whole semester, and I never had complaints about it.

It is very simple to use:

  1. Don’t be deterred by the number of files in the zip - you only need two (yes, 2!)
  2. Give it your code: Look in the BIN directory, okay now put your .asm file in there
  3. Compile your code: Run tasm /l /zi your_file.asm, but replace your_file with the name of your .asm file
  4. Link your code: Run tlink /v your_file.obj io.obj, and replace your_file with the same name you used in step 3
  5. Run your code: Run your_file.exe, and again replace your_file with the same name

So to summarize, here is a sample use of TASM:

tasm /l /zi hello_world.asm
tlink /v hello_world.obj io.obj
hello_world.exe

It is best if you run TASM close to the root of your hard drive, so don’t put it in your “My Documents” folder, since it has spaces and is very long. In fact, after you download and unzip the file below, you can just drop the TASM folder straight into your C drive and it will work well. That’s in XP or earlier.

Okay, so how about running this in Vista or Windows 7? How about on a Mac? The key with Vista is that nobody, not even administrators, has direct access to the command line. The result is that no one I know has had success running TASM in Vista. You will need to install XP or earlier in a virtual machine and run it in there. Windows 7 may be simpler in that some variants contain a Windows XP VM already, so you might be able to run TASM in XP Mode. I really can’t say since I haven’t tried.

As for a Mac, I can say there is a very nice solution that doesn’t require wasting tons of system resources on a virtual machine. A dab of Google solves everything :) In this case, there is a nice bit of freeware called Boxer, which is a simple DOS emulator that most people use to play their favourite old games. Read the documentation and you should be up and running in no time. Boxer runs well under Mac OS X Leopard (10.5) and Snow Leopard (10.6).

Good luck! Let me know how it worked for you in the comments.

Update (Dec 2012)

Today I wanted to get a Hello World example running just to make sure that this copy of TASM still works on Windows 7. My PC is a quad-core machine running Windows 7 Professional SP1 with 6GB of RAM, so let’s say just a bit more than the typical computer that used an 8086 processor :)

For DOSBox I visited the DOSBox download page, and got a copy of the latest version for Windows (when I looked it was 0.74). Then I installed it to the default location suggested by the installer (C:\Program Files (x86)\DOSBox-0.74). Next I downloaded tasm.zip from the link at the bottom of this post, unzipped it, and placed it at the root of my drive (C:\tasm).

At this point, who knows what will happen - all I’ve done is a bit of set-up.

Okay, now I ran DOSBox using the shortcut it created in my Start menu, and used its built-in advice on how to mount a directory as a drive letter.

Z:\> intro
Z:\> intro mount

It seems that I will want to mount C:\tasm as my drive letter C so that DOSBox will see tasm.exe at C:\bin\tasm.exe, and we can move on.

Z:\> mount c c:\tasm\

DOSBox should confirm the action by responding Drive C is mounted as local directory c:\tasm\ . Good! I found a Hello World program online at Programmers Heaven. Don’t forget to follow the instructions given by “atcl” on that page…you need to edit the code by adding a .startup line just after the existing .CODE line. The file should be named “hello.asm” and should now look like this:

   .MODEL small
   .STACK 100h
   .DATA
HelloMessage DB 'Hello, world',13,10,'$'
   .CODE
   .startup
   mov  ax,@data
   mov  ds,ax                  ;set DS to point to the data segment
   mov  ah,9                   ;DOS print string function
   mov  dx,OFFSET HelloMessage ;point to "Hello, world"
   int  21h                    ;display "Hello, world"
   mov  ah,4ch                 ;DOS terminate program function
   int  21h                    ;terminate the program
   END

The next step is to compile the code, link it, then execute it.

Z:\> c:
C:\> cd bin
C:\BIN> tasm /l /zi hello.asm

The compiler should tell you that is finished with zero error messages and zero warning messages.

C:\BIN> tlink /v hello.obj io.obj

There should be no bad things printed out here either. Alright, now we have an executable program file and we can run it!

C:\BIN> hello.exe

You should now see the fruit of our work: the line Hello, world should appear. All done!

Update (Jun 2020)

I tried to follow the original instructions on a 64-bit Windows 10 PC and when I ran tasm I was shown an error that

This version of TASM.EXE is not compatible with the version of Windows you’re running. Check your computer’s system information and then contact the software publisher

However, when I installed DOSBox (the latest version is 0.74-3), the instructions above still worked (mount, tasm, tlink).

Download TASM 5: tasm.zip (8.1 MB)

Download Hello World source: hello.asm