TITLE Unmasking an Exception (Exceptions.asm)
; This program shows how to mask (set) and unmask (clear) the divide by zero
; exception flag.
INCLUDE Irvine32.inc
.data
ctrlWord WORD ?
val1 DWORD 1
val2 REAL8 0.0
.code
main PROC
finit ; initialize FPU (divide by zero is masked)
; By unmasking, we enable the divide by zero exception.
fstcw ctrlWord ; get the control word
and ctrlWord,1111111111111011b ; unmask Divide by 0
fldcw ctrlWord ; load it back into FPU
fild val1
fdiv val2 ; divide by zero
fst val2
exit
main ENDP
END main
Привет всем, я новичок в MASM и беру себя через некоторые интернет-проектов, я могу найти и у меня возникают проблемы с этим, как вы можете увидеть его разоблачает разделить на 0, но как я могу изменить это, чтобы замаскировать это же исключение? Если вы можете объяснять и быть как можно более подробным, что поможет тонну!Маскировка деление на 0 исключение сборки MASM
Установите один и тот же бит в 1, а не очищая ее до 0? Используйте побитовое 'OR'. – Jester
Смотрите, им очень очень понравилось, поэтому я не понимаю, что вы имеете в виду.) = – JimBob101
Узнайте, как работают [побитовые операторы] (https://en.wikipedia.org/wiki/Bitwise_operation), что является элементарным для любого программирования. Затем используйте 'или ctrlWord, 100b'. – Jester