این برنامه خیلی ساده رو ببینین !
$regfile "m32def.dat"
Dim A As Double
Dim B As Double
Dim C As Double
Dim Aa As Long
Dim Bb As Long
Enable Interrupts
Enable Int0
On Int0 Test
Do
Loop
Test:
A = 11
B = 12
C = A * B
Aa = 11
Bb = 12
A = Aa
B = Bb
C = A * B
Return
مقدار C باید بشه 132 اما مقدار ش 0 میشه ؟
حالا همین برنامه , اگه خارج از روتین Interrupt نوشته بشه کار می کنه . یعنی C میشه 132 . کسی دلیلش می دونه ؟
و راه حل ؟
$regfile "m32def.dat"
Dim A As Double
Dim B As Double
Dim C As Double
Dim Aa As Long
Dim Bb As Long
Enable Interrupts
Enable Int0
On Int0 Test
Do
Loop
Test:
A = 11
B = 12
C = A * B
Aa = 11
Bb = 12
A = Aa
B = Bb
C = A * B
Return
مقدار C باید بشه 132 اما مقدار ش 0 میشه ؟

و راه حل ؟
دیدگاه