Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site watmath.UUCP Path: utzoo!watmath!hhoeksma From: hhoeksma@watmath.UUCP (Henry Hoeksma) Newsgroups: net.micro.pc Subject: Bug in MASM 3.0 and therefore Lattice 2.15. Message-ID: <15959@watmath.UUCP> Date: Thu, 1-Aug-85 01:22:55 EDT Article-I.D.: watmath.15959 Posted: Thu Aug 1 01:22:55 1985 Date-Received: Fri, 2-Aug-85 00:26:05 EDT Distribution: net Organization: U of Waterloo, Ontario Lines: 11 The Lattice 2.15C that I just bought has a library function called movmem() that doesn't seem to work. Programs which use it tend to crash randomly. (This is for the S-model, but probably applies to the other models as well.) I disassembled movmem() and discovered that it used the instruction REPZ MOVSB, when it should have been REP MOVSB. I then wrote my own movmem() with the correct REP prefix, and to my surprise, when I disassembled the resulting object file it contained the REPZ prefix! It seems that MASM 3.0 (from MicroSoft) generates the wrong opcode for the REP - namely a REPZ. Assembler and C programmers beware!