Assistance on proper installiton of masm32 on Windows 8, 64 bits

Started by charlay90, January 05, 2014, 10:26:55 AM

Previous topic - Next topic

charlay90

Hello
I downloaded masm32 from one of the links on the site,however the installion did not go as smoothly as i had hoped. I was getting errors during the installation, i assumed it might be a  case of missing libraries. Apparently the syntax i used for the actual programming was not recognised as a result, i was not able to create any object files or executable files.
The feedback being 'Volume in C has no label' ,am not sure what label is required. Could it be the Libraries or maybe i should create a seperate partition for the installation?i really need to get it working as soon as possible.. 

hutch--

I can't help you with Win8 as I don't use it but it installs correctly on everything from Win2000 to Win7 64 bit. What you must make sure is that the OS or virus scanner does not interfere with the installation. The installer must have write access.

jj2007

There are several related threads which may help you sort it out:
http://masm32.com/board/index.php?topic=1110.0
http://masm32.com/board/index.php?topic=1922.0

Vortex

The message displayed by the dir command :

QuoteVolume in C has no label

is not an issue. Simply, the C volume has no label.

charlay90

The links were particularly helpful. But am still not able to build any object files in my coded programmes, however the templates in masm are working perfectly. Is there a sample program i can run coded on Win8?
thanks and regards

dedndave

Quote from: charlay90 on January 05, 2014, 10:06:03 PM
...am still not able to build any object files in my coded programmes...

can you show us a small example of your code ?
are any errors displayed ?

charlay90

;a simple program
include \masm32\include\masm32rt.inc
DumpRegs PROTO
.data

    intA BYTE 15
    intB BYTE 20
    intC BYTE 10

.code
main PROC
    mov eax,0
    mov eax,intA
    add eax,intB
    sub eax,intC
   

    call DumpRegs
    exit

main ENDP
END main




am getting an error A2070 : no instruction operands.

charlay90

made adjustments to the earlier program

include \masm32\include\masm32rt.inc
ExitProcess Proto , dwExitcode:DWORD
DumpRegs PROTO
.data

    intA DWORD 15
    intB DWORD 20
    intC DWORD 10

.code
main PROC
    MOV EAX,0
    MOV EAX,intA
    ADD EAX,intB
    SUB EAX,intC
   

    call DumpRegs
    INVOKE ExitProcess,0
 

main ENDP
END main



now this didnt build the obj file and the exe file...
am almost there please help

charlay90


dedndave

let's start with a simple program to see if the masm32 installation works, then work on Irvine

build this as a CONSOLE app
    include \masm32\include\masm32rt.inc

    .data

intA DWORD 15
intB DWORD 20
intC DWORD 10

    .code

main    PROC

    MOV EAX,intA
    ADD EAX,intB
    SUB EAX,intC

    print  sstr$(eax),13,10

    inkey
    INVOKE ExitProcess,0

main    ENDP

    END     main

charlay90

Phew!!!!worked like a charm!!!

thank you so much!!
the Irvine lib however seems to be absent from my system

dedndave

the irvine library is available online

http://kipirvine.com/asm/examples/index.htm

i think i use the VS2010 version - even though i do not use visual studio
Kip has designed his libraries around visual studio because they are available for free (express versions) and it saves him a lot of work

however, there are a couple conflicts with irvine and masm32
one that i can think of is that the masm32 package has a macro named "exit"
in the Irvine32 SmallWin.inc file, "exit" is an EQUate
exit EQU <INVOKE ExitProcess,0>
i would just comment out the EQUate and use the macro, as it's more flexible

some time ago, Jochen (jj2007) showed that Irvine32 and masm32 could be used together
use the forum search tool (maybe the advanced search tool)

charlay90

wow thanks!!!it worked using the VS2010 version....
though i havent found the instruction for the screen output...
i did it use the first prog you put up....
however in Irvine the "sstr$" isn't included

charlay90

how do i display the contents of the register EAX using Irvine.inc lib?

jj2007

Quote from: charlay90 on January 06, 2014, 06:46:06 AM
how do i display the contents of the register EAX using Irvine.inc lib?

There is a generic function "DumpRegs" which displays, inter alia, eax.
You might install MasmBasic. Once you see the editor with the help file loaded, go to the file menu, click "New Masm source", then click "Irvine32 example" about thirty lines down. The deb macro is what you really need, but if you insist on using genuine Irvine32, have a look at DumpRegs in that example ...