筱团Blog筱团のBlog

汇编前置

筱团·2021-09-21 23:11·172 次阅读

汇编前置

汇编架构#

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

总线

  1. 计算机各种功能部件之间通信的线
  2. 分为地址总线、数据总线、控制总线
  3. 传输只能是单向的
  4. 也分为串行和并发

编译型语言与解释型语言

编译型语言:C++、C、C#、go、rust
解释型语言:Python、java、php、javascript

编译过程

预编译:C语言如展开宏
编译:编译成汇编语言
汇编:编译成机器语言
链接:动态链接(从动态库查找,出来的程序较小)和 静态链接(直接编译,出来的程序较大)

gcc 的部分指令

Copy
# 预编译后停下来,生成后缀为 .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

小结#


存储器芯片#

从读写属性上看分为两类:

  1. 随机存储器(RAM),如主存
  2. 只读存储器(ROM)

X86的内存地址空间#

上图是 X86的内存地址空间,以后学习汇编也以 X86为案例去学习

posted @   筱团  阅读(172)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
目录