Assembly 部件x86机器代码表示00
我想知道机器代码00是什么意思?此外,我有时会在程序中看到机器代码08。08是什么意思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
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)
)。