第一行汇编

# 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

 

posted @ 2020-12-09 18:02  千古如何不见一人闲  阅读(59)  评论(0)    收藏  举报