NASM 2.05 based x86 Instruction Reference[ch047]
A.5.27.1 Pseudo-code examples a16 CMPSB without segment override and with Direction Flag clear (UP) is equal to CMP BYTE [SI], BYTE [ES:DI] LEA SI, [SI + 1] LEA DI, [DI + 1] a16 REPE CMPSW without segment override and with Direction Flag clear (UP) is equal to JCXZ @FF @@: CMP WORD [SI], WORD [ES:DI] LEA SI, [SI + 2] LEA DI, [DI + 2] a16 LOOPE @B @@: a32 ES CMPSD with Direction Flag set (DN) is equal to CMP DWORD [ES:ESI], DWORD [ES:EDI] LEA ESI, [ESI - 4] LEA EDI, [EDI - 4]