blob: 8cb8080f00f7af7958111d6f742536c6a48abc54 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#! /usr/bin/env python2
import sys
from miasm.jitter.csts import EXCEPT_INT_XX
from asm_test import Asm_Test_32
class Test_INT(Asm_Test_32):
TXT = '''
main:
MOV ECX, 0x10
loop:
INT 0x42
DEC ECX
JNZ loop
ret:
RET
'''
def set_int_num(self, jitter):
assert jitter.cpu.get_interrupt_num() == 0x42
self.int_num += 1
jitter.cpu.set_exception(0)
return True
def __init__(self, jitter):
super(Test_INT, self).__init__(jitter)
self.int_num = 0
self.myjit.add_exception_handler(EXCEPT_INT_XX,
self.set_int_num)
def check(self):
assert self.int_num == 0x10
self.myjit.cpu.set_interrupt_num(14)
assert self.myjit.cpu.get_interrupt_num() == 14
if __name__ == "__main__":
[test(*sys.argv[1:])() for test in [Test_INT]]
|