Run "armasm.exe" failed: "The application was unable to start correctly (0xc000007b)

1

I installed both VS2013 and VS2015 Professional (full install), and both have a "armasm.exe" under the bin folder. I set the bin folder into "path" environment variable. When I tried "armasm /?" under cmd, it prompts out a dialog box with a red cross sign, saying that:

The application was unable to start correctly (0x000007b). Click OK to close the application.

I wonder if this program is for ARM CPU's assembly language. Does this program only run on ARM machine that installed VS?

How can I get it to run?

visual-studio
assembly
visual-studio-2013
visual-studio-2015
arm
asked on Stack Overflow Jul 6, 2016 by Hind Forsum • edited Jul 7, 2016 by Cody Gray

1 Answer

2

I assume you're talking about the armasm.exe file in the \VC\bin\x86_arm folder? If so, then no, that is an x86 binary, not an ARM binary. It will run on your machine.

It is actually an ARM cross-assembler for x86. That means it allows you to assemble ARM binaries on an x86 host. Think of it like the x64 cross-compiler for x86 (in the x86_amd64) folder. That can compile 64-bit binaries on a 32-bit x86 host.

The reason you can't get it to start is because the environment has not been set up correctly, and required dependencies cannot be located. When I try to start it, I get a more descriptive message than you do:

System Error:
The program can't start because msvcdis140.dll is missing from your computer. Try reinstalling the program to fix this problem.

You are meant to use the vcvarsx86_arm.bat batch file (in the same folder) to get your environment set up correctly, before trying to run any of the tools. Step-by-step:

  1. Open a new Command Prompt.
  2. Drag in vcvarsx86_arm.bat, and press Enter to run it. This sets up your environment to run the x86/ARM tools.
  3. Drag in armasm.exe (or simply type armasm.exe into the prompt, unqualified). It will now run because the environment has been correctly set up (including the path, so that it can be found without requiring the full path to be entered).

There is also a \VC\bin\amd64_arm folder. This contains tools for ARM executables that run on x64 hosts. You use those in exactly the same way, except you launch the vcvarsamd64_arm.bat file in that folder first.

It is worth noting that I also see a \VC\bin\arm folder, but (at least in my install of VS 2015) that contains only one EXE: pgosweep.exe. Microsoft does not appear to provide an ARM assembler that runs on ARM platforms. Which makes sense—I don't think ARM is a supported host for development. Visual Studio certainly hasn't been ported to ARM. Just use the ARM tools on x86 or x64.

answered on Stack Overflow Jul 7, 2016 by Cody Gray • edited Jul 7, 2016 by Cody Gray

User contributions licensed under CC BY-SA 3.0