ID Number: Q35794
5.00
MS-DOS
docerr
Summary:
On Page 371, section 18.3, of the "Microsoft Macro Assembler
Programmer's Guide," the code fragment and discussion are incorrect.
The manual implies that if CX=0 after the "repne scasb" instruction, the
character was not found. This information is false; the character
could have been in the last byte of the string. Furthermore, the
programmer's guide states that if the character is found, then ES:DI
points to the character. This information also is wrong. ES:DI points
to one after the character.
On Page 364, the programmers guide correctly describes the steps in
which the CPU executes the repne prefix with the scasb instruction.
This documentation error was corrected on the "Microsoft Macro
Assembler Programmer's Guide" for Version 5.10.
More Information:
The code sample is as follows:
.DATA
string db 'The quick brown fox jumps over the lazy dog"
lstring equ $-string
pstring dd string
.CODE
.
.
.
cld
mov cs,lstring ;Load length of string
les di,pstring ;Load address of string
mov al,'z' ;Load character tofind
repne scasb ;Search
jcxz notfoung ;CX is 0 if not found
.
.
.
notfound: