До кучи ситуация маленькой модели и широкого указателя Вот, обявляем ptr_f как указатель на far область при модели SMALL (все "обычные" указатели - 16 бит). Имеем корректные присваивания и сравнения (работа с лонгами).
__far INT8U * volatile ptr_f; __far INT8U * volatile ptr_f2; void main (void) { ptr_f = 0; if (ptr_f == 0) { _main: ;;;; { ;;;; ptr_f = 0; MOVN A, #0 ZEXTW MOVL _ptr_f, A ;;;; if (ptr_f == 0) MOVL A, _ptr_f BNE L_23 ;;;; if (ptr_f == ptr_f2) MOVL A, _ptr_f CMPL A, _ptr_f2 BNE L_25