Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 部件x86机器代码表示00_Assembly_X86 - Fatal编程技术网

Assembly 部件x86机器代码表示00

Assembly 部件x86机器代码表示00,assembly,x86,Assembly,X86,我想知道机器代码00是什么意思?此外,我有时会在程序中看到机器代码08。08是什么意思 08048413 <main>: 8048413: 55 push %ebp #save frame pointer 8048414: 89 e5 mov %esp,%ebp #create new frame pointer 8048416: 83

我想知道机器代码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    
08048413:
8048413:55按%ebp#保存帧指针
8048414:89 e5 mov%esp,%ebp#创建新帧指针
8048416:83 e4 f0和$0xfffffff0,%esp
8048419:83 ec 10 sub$0x10,%esp#pnter=pointer-16
804841c:c7 44 24 04 03 00 movl$0x3,0x4(%esp)#将3存储为参数2
8048423:    00 
8048424:c7 04 24 01 00 movl$0x1,(%esp)
804842b:e8 bd ff ff ff呼叫80483ed
8048430:c9离开
8048431:c3 ret

您需要阅读文档,了解每个操作码的含义

哎呀,我错了,NOP不是0x00(在8051上是0x00)


见此表

您是否参考地址8048423?我想这是前一行的。将这两条指令进行比较,您将看到它是常量-
03 00
(第二行
01 00
)。第一个字节长一个字节,因为您使用偏移量(
0x4(%esp)
),第二个字节是直接的(
(%esp)
)。