汇编前置
汇编架构#
X86 :intel的32位架构
AMD64 :AMD的64位架构
ARM :Acorn的32位架构(由于功耗小,多用于手机与平板)
MIPS :衡量计算机速度的指标(一般用于嵌入式路由器)
IA64 :intel的64位架构
X86-64CPU :简称为X64,兼容64位和32位
risv :精简指令集
cisv :复杂指令集
基础知识#
1 byte = 8 bit
1 word = 2 byte
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
总线
- 计算机各种功能部件之间通信的线
- 分为地址总线、数据总线、控制总线
- 传输只能是单向的
- 也分为串行和并发
编译型语言与解释型语言
编译型语言:C++、C、C#、go、rust
解释型语言:Python、java、php、javascript
编译过程
预编译:C语言如展开宏
编译:编译成汇编语言
汇编:编译成机器语言
链接:动态链接(从动态库查找,出来的程序较小)和 静态链接(直接编译,出来的程序较大)
gcc 的部分指令
# 预编译后停下来,生成后缀为 .i 的预编译文件
-E
# 编译后停下来,生成后缀为 .o 的目标文件
-c
# 汇编后停下来,生成后缀为 .s 的汇编源文件
-S
## PS:编译整体指令顺序可记为 ESC(键盘左上角的键)
## PS:编译整体后缀顺序可记为 ciso(思科的简称)
# 确定输出文件的名称为 output_filename
-o output_filename
# 强制使用静态链接库
-static
# 产生符号调试工具(GNU的 gdb)所必要的符号信息
-g
# 使用它能够使 gcc 产生尽可能多的警告信息
-Wall
# 链接时装载名为 libname.a 的函数库(如 -lm 表示链接名为 libm.a 的数学函数库)
-lm
CPU#
CPU 对存储器的读写
若一段二进制信息 1000100111O11000
它在地址总线上就是 89D8H
它在控制总线上就是 MOV AX,BX
小结#
存储器芯片#
从读写属性上看分为两类:
- 随机存储器(RAM),如主存
- 只读存储器(ROM)
X86的内存地址空间#
上图是 X86的内存地址空间,以后学习汇编也以 X86为案例去学习
作者: 筱团
出处:https://www.cnblogs.com/CourserLi/p/15312363.html
本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了