Yes, but contiguous 0's are special and easy enough
to detect, and, it would not be difficult for the assembler
to include some initialization code. In the end, this is a
difference in philosophy, asm vs. higher level languages.
You don't expect an assembler to optimize that sort of thing,
but rather, to do exactly as it is told.
Now, I remember when g77 would actually include the
image of a zero-initialized array within a common block
in the executable.... at one point I had a 130MB
executable :-) . This is the opposite case, a high-level
language not optimizing that sort of thing.
Carlos.
At 06:37 PM 7/18/01 -0700, you wrote:
On Wed, 18 Jul 2001, Sean 'Captain Napalm'
Conner wrote:
some_buffer db 4096 dup(0)
end segment
That EXPLICITLY calls for 4K of 0's.
Virtually no assembler is clever enough to do a run-length compression.
OTOH, If you wrote
some_buffer db 4096 dup (?)
it would set up 4K of "UNINITIALIZED" space, which it COULD compress out
of the file, particularly if it is at the end.
. . . So it would be easy enough for a virus to
scan the
executable for a portion that is nothing but zeros, and hide in there.
It could
always make space within the MICROS~1 copyright message.
--
Grumpy Ol' Fred cisin(a)xenosoft.com
--------------------------------------------------------------
Carlos E. Murillo-Sanchez carlos_murillo(a)nospammers.ieee.org