深入理解计算机系统前篇总结

🍃博主昵称:一拳必胜客 博主主页面链接:博主主页传送门 博主专栏页面连接:专栏传送门–计算机考研 🍑创作初心:本博客的初心是每天分享记录自己学习的脚步,和各位技术友探讨交流,同时给同样感兴趣的朋友以参考; 博主研究方向:渗透测试、嵌入式、机器学习; 🌸博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ; ‘’ 特别鸣谢:木芯工作室 、Ivan from Russia


文章目录

  • 🍃概念梳理
    • 小知识点
    • 汇编详解
    • gdb的使用
    • 反汇编器 objdump

🍃概念梳理

小知识点

  • 32位最大支持4GB内存
  • x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。其64位架构由AMD率先推出,并被称为“AMD64”。之后也被Intel采用,被其称为“Intel 64”。一般也被称作“x86-64”、“x64”。
  • 值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
  • gcc指令常用方式 -o wodeexe 指定输出文件名字 -Og 指定优化等级为低 helloworld.c c文件
  • x86-64 高16位必须为0

在这里插入图片描述

汇编详解

  • 编译: compile以后就是汇编代码
  • gcc -S -Og hello.c
  • 汇编:assembly后是二进制代码 没法直接认
  • gcc -Og -c hello.c

汇编出来的东西里面有 很多 .size mul… .ident “GCC:Ubuntu”… 点开头的信息不用管 都是给汇编器和链接器的伪指令

gdb的使用

可以载入 一个二进制目标代码就是.obj的程序 然后gdb hello.o 然后查看x/14xb 某个函数

反汇编器 objdump

objdump -d hello.o 注意:反汇编只是用 obj目标代码来确定汇编代码 不需要访问 源代码或汇编代码