第一行汇编
# 1.
vim hello.asm
section .data
msg db "nothing is ture",0xa
len equ $ - msg
section .text
global _start
_start :
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
nasm -f elf hello.asm -o hello.o
ld -m elf_i386 -s -o hello hello.o
./hello
#2.
python dis包
import dis
import sys
if __name__ == '__main__':
try:
i = 1
j = 0
print(i / j)
except Exception as e:
name, value, tb = sys.exc_info()
print(name)
print(value)
print(tb)
print('==============')
print(dis.distb(tb))
-->标记出错的位置
<class 'ZeroDivisionError'>
division by zero
<traceback object at 0x7fb00ed92888>
==============
操作码 操作数
1 0 LOAD_CONST 0 (0)
2 LOAD_CONST 1 (None)
4 IMPORT_NAME 0 (dis)
6 STORE_NAME 0 (dis)
2 8 LOAD_CONST 0 (0)
10 LOAD_CONST 1 (None)
12 IMPORT_NAME 1 (sys)
14 STORE_NAME 1 (sys)
4 16 LOAD_NAME 2 (__name__)
18 LOAD_CONST 2 ('__main__')
20 COMPARE_OP 2 (==)
22 POP_JUMP_IF_FALSE 144
5 24 SETUP_EXCEPT 24 (to 50)
6 26 LOAD_CONST 3 (1)
28 STORE_NAME 3 (i)
7 30 LOAD_CONST 0 (0)
32 STORE_NAME 4 (j)
8 34 LOAD_NAME 5 (print)
36 LOAD_NAME 3 (i)
38 LOAD_NAME 4 (j)
--> 40 BINARY_TRUE_DIVIDE
42 CALL_FUNCTION 1
44 POP_TOP
46 POP_BLOCK
48 JUMP_FORWARD 94 (to 144)
9 >> 50 DUP_TOP
52 LOAD_NAME 6 (Exception)
54 COMPARE_OP 10 (exception match)
56 POP_JUMP_IF_FALSE 142
58 POP_TOP
60 STORE_NAME 7 (e)
62 POP_TOP
64 SETUP_FINALLY 66 (to 132)
10 66 LOAD_NAME 1 (sys)
68 LOAD_ATTR 8 (exc_info)
70 CALL_FUNCTION 0
72 UNPACK_SEQUENCE 3
74 STORE_NAME 9 (name)
76 STORE_NAME 10 (value)
78 STORE_NAME 11 (tb)
11 80 LOAD_NAME 5 (print)
82 LOAD_NAME 9 (name)
84 CALL_FUNCTION 1
86 POP_TOP
12 88 LOAD_NAME 5 (print)
90 LOAD_NAME 10 (value)
92 CALL_FUNCTION 1
94 POP_TOP
13 96 LOAD_NAME 5 (print)
98 LOAD_NAME 11 (tb)
100 CALL_FUNCTION 1
102 POP_TOP
14 104 LOAD_NAME 5 (print)
106 LOAD_CONST 4 ('==============')
108 CALL_FUNCTION 1
110 POP_TOP
15 112 LOAD_NAME 5 (print)
114 LOAD_NAME 0 (dis)
116 LOAD_ATTR 12 (distb)
118 LOAD_NAME 11 (tb)
120 CALL_FUNCTION 1
122 CALL_FUNCTION 1
124 POP_TOP
126 POP_BLOCK
128 POP_EXCEPT
130 LOAD_CONST 1 (None)
>> 132 LOAD_CONST 1 (None)
134 STORE_NAME 7 (e)
136 DELETE_NAME 7 (e)
138 END_FINALLY
140 JUMP_FORWARD 2 (to 144)
>> 142 END_FINALLY
>> 144 LOAD_CONST 1 (None)
146 RETURN_VALUE
None

浙公网安备 33010602011771号