Hot answers tagged

48

Plain DOS executables, in either COM or MZ format, don’t provide this information in their headers (when there is one — COM format doesn’t have a header). The only reliable way to determine whether a program requires a given CPU is to try running it on some less capable system (or emulation, e.g. with PCem which has accurate emulations of different x86 ...


38

there some particular design theory or constraint that made a 32-bit word size attractive for IBM to migrate to? It all comes down to the most basic data type, addressing constrains and, less important, reuse of existing memory technology. The byte size had to be a multiple of 4, as needed to accommodate BCD numbers without wasting space. So 8 was chosen ...


17

There is no easy way. The original DOS "MZ" type executable header do not contain such information about what kind of code it contains or what CPU type it needs. It just contains a binary image that is loaded to memory and information about how to start it in real mode, so there are no separate 16-bit or 32-bit binaries. The binary image may ...


9

Is there some simple method for determining if a DOS binary (.exe or .dll) is 16-bit or 32-bit? For one, DOS doesn't know about 32 bit, it's a strict 16 bit system. Second, .DLL are not DOS executables but Windows libraries. The Linux file command just says "executable". Because all EXE start out as 16 bit programs, marked by the magic number &...


6

One small reason is that you can access memory as a bit array without needing to divide (or do a modulo). Just use the bottom N bits for the byte or word or data cache line position or shift, and the rest of the bits left over as a memory address offset. Which can be done in hardware for free if needed.


5

Worthy of mention is the rise of the microprocessor- notably the 4004 which was designed for mostly numerical operation in calculators. Whether the step to 8 bit architecture was inevitable is open to debate, but once memory ICs started being produced in 8-bit forms, it would be difficult to justify anything other than 16-bit as the next step. Looking at ...


1

For reference, I am posting the .txt and .ini files from the exetype program. ********************************************************************* EXETYPE 1.0 is a tool to determine the nature of an executable file. Syntax: EXETYPE <filename> NOTE: EXETYPE does not yet support file wildcards. It is necessary to have the EXETYPE.INI file ...


1

Even within "16-bit mode", various 8086-compatible processors that have appeared over the years have extended the 8086 instruction set with instructions that weren't supported by earlier processors. Programs that only need to run on the later processors may exploit such instructions to perform various tasks more easily and efficiently than would ...


1

There is in the windows nt resource kit, a program called 'exetype'. The 3.1 version is a DOS program, while liter ones, like 3.51, is a win32 program. You type exetype filename.ext to get its type. It even tells you whether it's a vio (command line), or PM program.


Only top voted, non community-wiki answers of a minimum length are eligible