from https://pushbx.org/ecm/doc/acegals.htm#skipping === snip 11: Skipping instructions ------------------------- The constants __TEST_IMM8, __TEST_IMM16, and __TEST_OFS16_IMM8 are defined to the respective byte strings for these instructions. They can be used to skip subsequent instructions that fit into the following 1, 2, or 3 bytes. However, note that they modify the flags register, including always setting NC. The 16-bit offset plus 16-bit immediate test instruction is not included for these purposes because it might access a word at offset 0FFFFh in a segment. Also, the __TEST_OFS16_IMM8 as provided should only be used in 86M, to avoid accessing data beyond a segment limit. After the db instruction using one of these constants, a parenthetical remark should list which instructions are skipped. (Example 14.21, example 14.22.) === snip lmacros1.mac 323cc150061e (2021-08-29 21:45:54 +0200) from https://hg.pushbx.org/ecm/lmacros/file/323cc150061e/lmacros1.mac#l246 === snip %define __TEST_IMM8 0A8h ; changes flags, NC %define __TEST_IMM16 0A9h ; changes flags, NC ; Longer NOPs require two bytes, like a short jump does. ; However they execute faster than unconditional jumps. ; This one reads random data in the stack segment. ; (Search for better ones.) %define __TEST_OFS16_IMM8 0F6h,86h ; changes flags, NC === snip ldosboot boot32.asm 07f4ba0ef8cd (2021-09-10 22:45:32 +0200) from https://hg.pushbx.org/ecm/ldosboot/file/07f4ba0ef8cd/boot32.asm === snip error_fsiboot: mov al,'I' db __TEST_IMM16 ; (skip mov) read_sector.err: mov al, 'R' ; Disk 'R'ead error error: === snip === snip mov bx, [VAR(para_per_sector)] sub word [VAR(paras_left)], bx jbe @F ; read enough --> loop @BB pop bx pop cx call clust_next jnc next_load_cluster inc ax inc ax test al, 8 ; set in 0FFF_FFF8h--0FFF_FFFFh, ; clear in 0, 1, and 0FFF_FFF7h jz fsiboot_error_badchain db __TEST_IMM16 @@: pop bx pop cx call check_enough jmp near word [VAR(fsiboot_table.success)] === snip inicomp lz4.asm 4d568330924c (2021-09-03 16:59:42 +0200) from https://hg.pushbx.org/ecm/inicomp/file/4d568330924c/lz4.asm#l491 === snip .success: db __TEST_IMM8 ; (NC) .error: stc retn === snip DOSLFN Version 0.41c (11/2012) from http://adoxa.altervista.org/doslfn/ === snip ;THROW-Geschichten... SetErr18: mov al,18 db 0B9h ;mov cx,nnnn SetErr5: mov al,5 db 0B9h ;mov cx,nnnn SetErr3: mov al,3 db 0B9h ;mov cx,nnnn SetErr2: mov al,2 SetError: === snip