free_seg proc
;es-таблица
;eax-номер страницы
mov cx,8
mov edx,eax
shr edx,8
div cx ;ТУТ ВИСНЕТ
mov ebx,eax
;edx-остаток
mov al,byte ptr es:[ebx]
mov ah,10000000b
mov ecx,edx
shr ah,cl
or al,ah
mov es:[ebx],byte ptr al
ret
endp
Проблема с процедурой
На строке div cx происходит зависание. Никак не могу понять что процу не нравится, плиз, помогите найти ошибку!
Код:
mov edx,eax
and edx,7
shr eax,3
and edx,7
shr eax,3
А вообще, при делении больших чисел на 8, результат может не поместиться в регистр ax, из-за этого переполнение, прерывание, ...