0

我想知道机器代码00是什么意思?另外,我有时会在程序中看到机器码 08。08 是什么意思?

    08048413 <main>:
    8048413:    55                      push   %ebp   #save frame pointer 
    8048414:    89 e5                   mov    %esp,%ebp    #create new frame pointer
    8048416:    83 e4 f0                and    $0xfffffff0,%esp
    8048419:    83 ec 10                sub    $0x10,%esp   # pnter = pointer - 16
    804841c:    c7 44 24 04 03 00 00    movl   $0x3,0x4(%esp)  #store 3  as argument 2
    8048423:    00 
    8048424:    c7 04 24 01 00 00 00    movl   $0x1,(%esp)
    804842b:    e8 bd ff ff ff          call   80483ed <sum>      
    8048430:    c9                      leave  
    8048431:    c3                      ret    
4

2 回答 2

2

00 不是机器码。它只是地址(0x00000003)。在 64 位机器中,一个地址由 4 个字节组成,反汇编不会显示太长的行,它会换行。那是。

于 2021-10-26T02:15:12.787 回答
-3

您需要阅读文档并查看每个操作码的含义

哎呀我的错误,NOP不是0x00(8051上的0x00)......

请参阅此表http://sparksandflames.com/files/x86InstructionChart.html

于 2014-09-29T07:16:57.533 回答