Thanks for that - yes, I know.

However, the ASM program uses only register and 'immediate', not storage-storage, instructions (RR and RI, but no RX and SS etc.) in its inner and outer loops (LOOP2 and LOOP1). It does store/retrieve (PUSH, POP) data on the stack to save/retrieve intermediate data. It has no DOS instructions (e.g. INT 21H) inside the loops and uses no graphics. It is just OS independent Intel machine code and does not need to be 'emulated'. Yet it takes approximately 100-200 times more CPU cycles to execute under windoze than under native DOS. (A 3.2GB Mhz processor is almost 100 times faster than a 33Mhz one.)

AFAIK, windoze continually interrupts its execution to check whether the mouse has moved, whether a key has been hit (which would count as I/O or 'graphics') or whether another has to be dispatched etc. Native DOS is far more efficient performance-wise.

CP




Joel C. Ewing wrote:

On 10/01/2016 06:24 AM, Robert Prins wrote:
On 2016-10-01 01:59, CM Poncelet wrote:
't is Friday, so here we go again.

I wrote the following in Intel assembler in the 1990's to check the
CPU-cycles
performance of DOS vs Windows 3.1 (if memory serves), using a 486/33Mhz
processor and practically all executable code loaded in the
instruction cache:
<snip code>

This took approx 1'45" (elapsed) to execute under native DOS with a
80486/33Mhz
processor - i.e. there was a 1-to-1 correlation between the number of
machine
instructions vs the number of actual 33Mhz CPU cycles.

I reran this under Windows XP from the 'command prompt' with a 3.2Ghz
processor
(approx 100 times faster than a 33Mhz one), and it then took 3'48" to
complete -
thus about 200 times longer (CPU-wise/elapsed) than when running
under native DOS.

Moral: Use native DOS (preferably with a DOS extender) for fast PC
performance.
NO, NO, NO!!!

Moral, write programs that run natively. A 16-bit DOS program running
in an emulated DOS box will never run as fast as a native windoze
program... Ask for a native windoze version on
<http://board.flatassembler.net/index.php> or
<http://masm32.com/board/index.php> and the program will probably run
faster than you can blink an eye.

Robert

PS: Decode the email address, you can send me copies of the .EXE's
renamed to .QQQ and in a ZIP file!
Actually I think you may both be missing a significant point.

Native DOS only used text mode input output.   Windows used graphical
output, which consumes a very significant amount of resources by itself,
besides forcing additional multitasking overhead.   I would expect any
operating system that did that using the same CPU and memory to generate
and control graphic output would exhibit significantly less power
delivered to applications.

There is a reason why 1960's mainframes  like a  360/65 with only a 0.5
MIP processor could run a major business -- they only had to deal with
record I/O and text data.  The closest they came to graphics was 3270
full screen displays, and the translation from text streams to display
was handled wholly by external controllers, without adding overhead to
the main processor and memory.  I remember there being management
resistance to even moving from monochrome monocase 3270's to multi-color
dual-case 3270's because of the "unnecessary" extra overhead of
supporting those features.
   Joel C. Ewing



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to