cpu 8086 org 256 start: xor di, di xor ax, ax xchg ax, [di + 2Ch] mov es, ax mov ah, 49h int 21h mov ah, 52h int 21h mov ax, [es:bx - 2] mov es, ax cmp word [es:di + 1], 0 jne error mov ax, 1261h stc int 2Fh jc error xor bx, bx .loop: mov ds, ax cmp byte [di], 'Z' je .last cmp byte [di], 'M' jne error mov bx, ax add ax, word [di + 3] inc ax jmp .loop .last: test bx, bx jz error cmp word [di + 1], 8 jne error cmp word [di + 3], 0 jne error cmp word [di + 8], "S" jne error cmp byte [di + 10], 30h jne error mov ds, bx cmp word [di + 1], 0 jne error mov ax, 5801h mov bx, 382h stc int 21h jc error int3 mov byte [di], 'Z' mov ah, 48h mov bx, -1 int 21h mov ax, 4C00h int 21h error: int3 mov ax, 4CFFh int 21h