From the datasheet of ATmega8:
“The external interrupts are triggered by the INT0, and INT1 pins. Observe that, if enabled, the interrupts will trigger even if the INT0..1 pins are configured as outputs. This feature provides a way of generating a software interrupt. The external interrupts can be triggered by a falling or rising edge or a low level.”
I run Atmel Studio 6 (Version: 6.2.1502 - Service Pack 1) and I use the in-built simulator.
In my assembly code:
(1) I set ISC01=1 and ISC00=0 (to activate INT0 at falling edge).
(2) I set PD2 as high output.
(3) I enabled INT0 (in GICR) and flag I (in the status register).
During simulation, when the instruction for PD2=0 (falling edge) is executed, INTO didn’t occur.
But when PD2 is set to 1 again (rising edge), INT0 is activated.
I can live with this bug.
This is just a feedback since I am not sure if it is fixed or not in the latest version.