8,16,32,64-bit window & dos program compatibility issue

Dear Experts,
My system is  win 7 64 bit ver. & intel CPU P6300, 64-bit. I downloaded a lot 32-bit programs from internet that is based window XP before. Sometimes, I'll experience  installation setup issue, & the installation site will suggest how to  solve window Compatibility  or any other  issue through its tricky hint .

I am  confusing  whether 64-bit instruction site is superset of or over 32-bit instruction set. If so, all 32-bit installation or program should be ran on 64-bit system without any issue, Why always has window error message box for  Compatibility issue ?

I'll think 8, 16 or 32-bit program can run on 64-bit system,but 64-bit program can NOT run on 8-bit,16 or 32-bit system.And  I think window program and dos console program  is no difference besides its application features  since they both go to the same instruction set for one same computer and same processor, Right ?

For recent example, I download 32-bit assembly compiler, masm611,when I click install.exe after download, window 7 will echo "messgbox, please solvesystem compatibility issue or check your anti-virus software to complete the installation.."  Some internet site told me install DosBox-0.74 shell program and  re-run it on the shell, and finally solved it out for the installation.

In what situation, 32-bit program can NOT be installed or ran on window 7 64-bit system ?

Please advise
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

QlemoBatchelor, Developer and EE Topic AdvisorCommented:
No, it is not that simple. Because many operations are not available in the "lower" bitness variants, and addressing is made differently in 64bit and non-64bit Intel, it does not "just work".
Also, in 64bit systems the 32bit code has to get passed to the 64bit kernel for all kinds of communications - I/O, graphics, access to a particular driver, SQL, ... The components cannot talk to each other without translating (e.g. because memory structures need to be aligned on 32bit or 64bit boundaries).
On 64bit Windows there is another issue for 32bit programs: Certain registry and file paths need to get redirected to allow co-existence of 32 and 64bit programs.

You can't execute 16bit programs on 64bit Windows without using an emulator (DOS-Box and the like).
Most 32bit software will run on a 64 bit OS, but sometimes, particularly if it needs to access low-level functions, hardware or drivers, it may not work. Particularly if you bought hardware for which you don't have 64 bit drivers, it won't work. Drivers on a 64 bit OS need to be 64 bit drivers too.

For most good software you should be able to get upgrades that work without problems on Windows 7, so you should always try looking for such upgrades, or then replacing the software with something new. It is also a good chance to consolidate your system, and get rid of what isn't needed. A lot of what gets accumulated over time is useless junk you don't really need. Also, I have replaced a lot of software with software included in PortableApps. These are all free, and most are OpenSource, and updates etc are handled automatically. You'll find a software for almost all needs there. A further advantage is that you don't have to install everything, and you can also put them on a USB stick and run them from there, so you have everything handy if you need to work on a foreign PC:

rwniceingAuthor Commented:
I heard it before when you download some 64-bit program to your 64-bit window 7 system and run it that is no major different  performance from the 32-bit program unless you have  upgraded your memory to at least 8G.   Did you heard this before.

Back to your post reply , if for low-level issue, putty program is such kind of low-level program ? why we can use 32-bit putty.exe to do remote connection on win 64-bit system ?

If what you concern is correct, 64-bit is not superset of 32-bit instruction set for Intel.

Do you think AMD has similar window compatibility issue as Intel   when 32-bit program running on win 64-bit system ?

Please advise
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

Putty doesn't need low level access on the system it is running at all (and besides, it is one of those programs that includes a portableapps version).

There is no difference between Intel and AMD (actually it was AMD that first introduced 64 bit to it's x86 type CPU's, and Intel copied that later).

But Intel also includes the Itanium CPU, but that CPU has the disadvantage that it only supports 64 bit, and so you can only install 64 bit OS's on it that were designed for that CPU. This CPU isn't very commonly used, mainly it was made for Servers.

Performance isn't the main reason for a 64 bit OS, although many things will run slightly faster, but rather the fact that you can use more than 4GB RAM.
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
There is usually no performance difference, unless the application has to cope with huge amounts of data, and or makes use of particular 64bit instructions. CAD, databases and server applications are candidates.
rwniceingAuthor Commented:
Please read my topic post again. You will understand my question & the question is simple but tough. Please write more  detail for the terminology word you posted that will assist to find the final comments
Gary CaseRetiredCommented:
As already outlined above, it's much more complex than the simple "upward compatibility" you've assumed.    Some instructions indeed have the same op codes, but the addressing is different, and in fact the address space differences need to be compensated for as well.

Windows resolves this by running an emulator that allows these programs to USUALLY run okay.   For example, if you run a 32-bit program on a 64-bit Windows installation, it runs under the control of WOW64 ("Windows on Windows 64-bit), which emulates the 32-bit instructions needed by the 32-bit program.    There ARE some programs that won't work properly this way -- to run those you simply need a 32-bit installation of Windows.    If you only have a couple of apps in this category, the best way to run them is in Windows 32-bit installation in a virtual machine that's running on the 64-bit system.     I've seen a few programs in this category, and they all run fine on 32-bit VM's.

Similarly, 16-bit programs run in a WOW32 emulator on 32-bit Windows installations.   WOW32 will NOT run on a 64-bit Windows install, so you can't run 16-bit programs on those systems.   But, as I noted above, you can easily run them in a virtual machine that's running either a 32-bit Windows system (where they will run under WOW32) or a virtual machine that's got a native 16-bit OS.     There are, as with the 32-bit case, a few 16-bit programs that won't run correctly under WOW32, but these will run fine in a 16-bit virtual machine [I don't recall any specific examples of this -- it's been too long since I've seen this problem].

As for 8-bit programs -- many of these will run fine in WOW32 on a 32-bit install; but some of them require a native 16-bit OS (e.g. MSDOS) ... which, as above, you can run in a virtual machine.    I've even got a copy of CP/M (many folks on this forum weren't even born then !!) running under the UniDOS emulator running on a DOS virtual machine on Windows 7 x64 :-)

I use VMware Workstation for most of my virtual machines, but you could use the free VMware Player just as well.    I have VM's for virtually the entire evolution of Microsoft's OS -- MSDOS, NT4, Windows 95, Windows 98, Windows 98SE, Windows ME, XP Home, XP Pro, XP MCE, multiple versions of Vista, multiple versions of Windows 7, and Windows 8.    All running on my main system, which is a Windows 7 x64 system.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Gary CaseRetiredCommented:
... To specifically answer your question, "... In what situation, 32-bit program can NOT be installed or ran on window 7 64-bit system ? "  ==>  When the 32-bit program will not run properly under the WOW64 system that Microsoft provides for running 32-bit programs.   I've found several older greeting card programs in this category ... Print Master Platinum, Greetings Workshop, etc.; and some older Palm Pilot software won't sync unless it's running on an actual 32-bit OS.   I'm sure there are other examples as well.    In all of the cases I've seen, if you simply run the program in a 32-bit Windows installation on a virtual machine, they work fine.
JohnBusiness Consultant (Owner)Commented:
I am in general agreement with Gary Case. I use Windows 8 Pro 64-bit and I have been using 64-bit operating systems for about 7 years.

Standard 32-bit programs will run in 64-bit as has been noted. I use Office, Adobe, Java and Flash all 32-bit and have done all along.

If some 32-bit will not run, and will not work in compatibility mode, then it is not going to run. Likewise (ever since 64-bit came out) 16-bit DOS programs will not (will never) run natively.

I use VMware Workstation V10 (as Gary does) and I have a couple of XP machines that allow me to run old programs just fine.

VMware Workstation is powerful, flexible and is an easy answer to old programs.
rwniceingAuthor Commented:
this link describes the similar topic
When there is compatibility mode, emulator for 32-bit or VM machine for different window platform existed that  prove 32-bit application MUST run on 64-bit system but it needs those tools to assist to achieve it. Why it needs such tools to achieve it, that is problem from Microsoft window operating  or Intel processor itself (Both will reply it is because different system has different system architecture design for its system efficiency) . Intel CPU processor could run on iphone  or smart mobile but got sales order rejected to run on iphone by Apple that is due to  too large Power consumption on Intel mobile processor , and lost its business on smart  phone. Sometimes it is hard to believe moving new bigger house can NOT move in those furniture or appliances that used before in older and smaller house.If it is not, that is due to new house Design Architecture issue and it is NOT due to the new house size or new house ability issue. 64-bit or window 7 has better system than previous one. But why there is a lot of users  still keeping its  window XP  CD copy at home?
rwniceingAuthor Commented:
Thanks for your reply
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows 7

From novice to tech pro — start learning today.