22f ; Align ; Aligns a far pointer to aval bytes boundary, useful for optimizing 386 ; stores and fetches. Returns the new updated pointer. ; ; void char far* align_mem(void far* p, unsigned aval) IFNDEF model model EQU ENDIF .DOSSEG .MODEL model, C .386 .CODE PUBLIC align_mem align_mem PROC C, pt:DWORD, aval:WORD mov ax, aval dec ax align_lp: test word ptr[pt], ax jz aligned_ok inc word ptr[pt] jmp align_lp aligned_ok: mov dx, word ptr[pt + 2] mov ax, word ptr[pt] ret align_mem ENDP END . 0