Decided to finally sit down and learn this language but I have one problem. Im using windows vista ultimate 64bit is their any hope for me finding a complier
Posted on 2007-10-04 18:36:13 by odm4286

Decided to finally sit down and learn this language but I have one problem. Im using windows vista ultimate 64bit is their any hope for me finding a complier


There should be no problem running *any* assembler, or application for that matter, compiled for Win32 on Win64. This is a concept that is guaranteed by the very design of the x86-64 and any OS that is good enough to utilize it.

With that in mind, there are some 32-bit apps that make use of deep Win32 stuff and thus break on Win64. However, none of the major assemblers you would want to use fall in that category.

I can guarantee it myself, as I have developed and used the NASMX package (which itself utilizes NASM) on 64-bit Vista :)

As a side note, the NASMX package contains capability and examples to produce 32-bit and 64-bit Windows assembly language applications ;)
Posted on 2007-10-04 20:13:46 by SpooK
now what do you i do about a debuger?(my book tells me i need debug.exe?)
Posted on 2007-10-04 21:21:28 by odm4286
And by the way NASMX loads what looks like a ms dos window for a second then closes
Posted on 2007-10-04 21:53:40 by odm4286

now what do you i do about a debuger?(my book tells me i need debug.exe?)


Look here.

Also, what book???


And by the way NASMX loads what looks like a ms dos window for a second then closes


Which file are you trying to run??? Sounds like \bin\nasm.exe from what you say. That is the assembler and it is a standard console application that expects parameters.

Don't confuse a "MS DOS Window" with a genuine console (text-driven) program. DOS is primarily 16-bit. Windows may be mostly graphical, but the Win32 API has support for your basic console apps.

Most useful development tools you will find *are* console programs. Adding unnecessary GUI aesthetics to a data-processing program does not make it better... just more bloated.

Sounds like you are used to comfortable graphical user interfaces, and this is what IDEs like RadASM are for. Such IDEs keep track of your development project and pass the appropriate command-line parameters to the specific assembler when you do want to assemble your files.
Posted on 2007-10-04 22:55:56 by SpooK
http://www.amazon.com/Assembly-Language-Step-step-Programming/dp/0471375233

Is the book I am using and it is asking me to debug a txt file while its in memory. How would i do that with the debuging tools youve pointed me to?
Posted on 2007-10-05 05:19:35 by odm4286

http://www.amazon.com/Assembly-Language-Step-step-Programming/dp/0471375233

Is the book I am using and it is asking me to debug a txt file while its in memory. How would i do that with the debuging tools youve pointed me to?


You would have to read up on WinDbg, that is beyond my immediate knowledge. I've personally never had much use for debuggers, especially when programming in assembly language itself.

You also may want to consider not reading the DOS portions of that book, or at least not get too involved with them on Win64... and this includes learning about debug.exe. You may wish to look at the 32-bit Art of Assembly book instead... just ignore the HLA-specific stuff if you don't like it.

I can, however, point you to Wikipedia for some info and Code Project for a tutorial.
Posted on 2007-10-05 07:49:23 by SpooK
ah ok so that book was actualy for 16 bit assembly?  :sad:
Posted on 2007-10-05 09:12:42 by odm4286

ah ok so that book was actualy for 16 bit assembly?  :sad:

Most books on assembly are - it's not a super popular topic. I just go a link to 32/64-Bit 80x86 Assembly Language Architecture from amazon the other day, though...
Posted on 2007-10-05 09:18:47 by f0dder


ah ok so that book was actualy for 16 bit assembly?  :sad:

Most books on assembly are - it's not a super popular topic. I just go a link to 32/64-Bit 80x86 Assembly Language Architecture from amazon the other day, though...


Yep. Even though most are, you can still learn the fundamentals of ASM by reading them. There are almost always useful little OS-independent gems scattered throughout such books. Just concentrate less on the OS-specific implementation (e.g. DOS Interrupts) and more on the instructions and their usage. Another up-side is that jumping from 16-bit to 32/64-bit isn't that complex, it usually just involves using more instructions, larger registers and a "flat" address space instead of segmentation.
Posted on 2007-10-05 12:10:28 by SpooK
Well I started reading 32/64-Bit 80x86 Assembly Language Architecture and it seems to have alot of c and C++ code involved which is what i wanted to avoid for this little project. Is there any books compatible with vista ultimate 64bit that will teach me raw asm?
Posted on 2007-10-05 18:54:12 by odm4286

Well I started reading 32/64-Bit 80x86 Assembly Language Architecture and it seems to have alot of c and C++ code involved which is what i wanted to avoid for this little project. Is there any books compatible with vista ultimate 64bit that will teach me raw asm?


Quick and hard answer, no. Microsoft is actively trying to phase out assembly language, and MASM as well. They are invested in IL and C#/.Net Virtual Machine technologies. This would make it hard-pressed to find an actual book that targets assembly language for Win64.

Fortunately, the differences in the architecture between 32-bit and 64-bit are not great. Learning assembly language along with Win32, and then the basics of Win64 and 64-bit architecture should suffice. If you don't plan on getting into the kernel-side of things, you have even less to worry about.

Off-hand, it sounds like your "project" is probably way over your head at this point. If you really want to get anywhere, you will simply need to learn the basics.
Posted on 2007-10-05 19:17:21 by SpooK

....currently program asm on a 64bit processor and a vista 64bit os. As you can see from my other thread

http://www.asmcommunity.net/board/index.php?topic=28748.0

Im having trouble even finding the information and software i need to learn this language


Yes, as a matter of fact, I do... as well as on 64-bit XP. This is on top of the fact that I have helped bring x64 support to NASM and I am developing my own 64-bit operating system.

The problem is that you are being too vague about your needs, which leads me to believe that your "project" is either on the "illegal" side and/or that it is beyond your knowledge to implement at this point.

At any rate, you are looking too hard for the easy way out when what you have to do is learn about programming, architectures and assembly language. Whether you are targeting a 16-bit or a 64-bit x86 processor, it doesn't matter, as the basics are generally the same and must be learned none-the-less. You have been given good leads and I recommend that you follow them.

PS: There is no need to make a new post when the contents and requests are practically the same... believe me... you won't get any more attention than you already are ;)
Posted on 2007-10-05 20:04:10 by SpooK
Sorry about the other post. Well im not trying to do anything illegal it just seems there aren't any books that I can follow along with because none of the programs they use work on vista. And those with vista compatible programs mix other code into asm.
Posted on 2007-10-06 07:45:46 by odm4286

Sorry about the other post. Well im not trying to do anything illegal it just seems there aren't any books that I can follow along with because none of the programs they use work on vista. And those with vista compatible programs mix other code into asm.


No worries. There are not many books at all... if any. However, you can read 32-bit x86 ASM programming books and tutorials, and those concepts will mostly apply to 64-bit.

As for "mixing code", well, doing 100% of your program in ASM on already established OS' is not practical. Even in Win32 ASM programming, you make calls to Kernel32 and the like in order to allocate memory and other necessary things.

I guarantee you, that if you grab a Windows 32-bit (Win32) programming book/tutorial, and crank out code that relies on the Win32 API, those programs will run on Vista. The majority of the Win32 API functions, if not all, have their Win64 equivalents.

On a pretty relevant side note: You may not want to get too involved in how "Vista" does things. From what I have heard, Microsoft already has the replacement for Vista scheduled to be released in 2009. There is a possibility, a strong one since Vista is actively being compared to Millennium Edition, that some Vista concepts may not apply in the future. Microsoft has done some good things with Vista, but it was more about marketing and Microsoft trying to give an image of that "we are just as secure" to customers. If something can't run, it can't crash your system and allow hackers in :P
Posted on 2007-10-06 09:37:33 by SpooK
Well thanks for you all your help I really appreciate it and although this may be off topic. Do you think it might be best to go back and learn C at an advanced level (only know the basics) or if im searching for power and flexibility will i be disappointed.
Posted on 2007-10-06 13:17:06 by odm4286

I guarantee you, that if you grab a Windows 32-bit (Win32) programming book/tutorial, and crank out code that relies on the Win32 API, those programs will run on Vista. The majority of the Win32 API functions, if not all, have their Win64 equivalents.

As long as you write clean code, that is - plenty of apps break on Vista (and non-admin NT/2k/XP) because the programmers are tards.
Posted on 2007-10-06 14:44:47 by f0dder

Well thanks for you all your help I really appreciate it and although this may be off topic. Do you think it might be best to go back and learn C at an advanced level (only know the basics) or if im searching for power and flexibility will i be disappointed.


C Exists for that reason, to hide unnecessary processor internals when they are not needed. Unless you are doing some really tricky things or are trying to write really really tight-loops, you probably won't need to use ASM.

Sounds weird coming from an assembly language programmer, doesn't it??? Well, I believe in using the right tool for the right job ;)
Posted on 2007-10-06 15:45:21 by SpooK