对汇编的架构认知

汇编的种类:

  • 8086(处理器是16bit的cpu)(16位)

  • Win32汇编:

  • Win64汇编

  • ARM汇编(嵌入式、MAC,iOS)

  • CUP架构:(CPU不同的型号)不同的cpu架构对应不同的cup指令集,M1系列同iPhone同架构(ARM)

  • iPhone使用的CPU架构,但是不同的设备是有差异的,因为CPU的架构不同

架构 设备
armv6 iPhone、iPhone2、iPhone3G、第一代、第二代iPod Touch
armv7 iPhone3GS、iPhone4S、iPad、iPad2、IPad3(The New iPad)、iPad mini、IPad Touch3G、iPod Touch4
armv7s iPhone5、iPhone5C、iPad4(iPad withRetina Display)
arm64 iPhone5S--iPhoneX,iPad Air,iPad mini2---

必备知识:

  • CPU硬件结构:
  • App执行、编译过程
  • 硬件相关最为总要的是CPU/内存
  • 在汇编中,大部分指令都是与CPU、内存相关的

CPU

总线:

CPU与内存的桥梁:是一根根导线的集合。每个cpu有很多针脚,通过这些针脚与外部链接,与外部交互。 #####总线的分类: 地址总线 :功能是寻址,总线的宽度决定了寻址能力,每根导线可以表示(0和1),CPU跟内存是有关系滴,在早期的时候如果内存过大,CPU的寻址能力不够,内存访问不到。但是也有解决方案,CPU进行两次寻址,然后相加,但是这样的方式就注定了速度变慢。现在CPU寻址能力是饱和的,64位cpu。8086的地址总线宽度是20根,所以寻址能力是1M(2^20)
控制总线:它的宽度决定了CPU对其他控件的控制能力,能有多少控制
数据总线 :它的宽度决定了CPU的单次数据传送量,也就是数据传送速度,或者可以描述为CPU的吞吐量 通常讲32位CPU、64位CPU指的是CPU的数据总线宽度。对于一个引用数据对象,在编程过程中,一个指针8占用字节,一次放电就可以搞定(64位)

8086CPU数据总线宽度是16,单次传输数据2字节 32位CPU一次放电可以传递4字节 64位CPU一次放电可以传递8字节

相关推荐
Crossoads6 天前
【汇编语言】更灵活的定位内存地址的方法(三)—— 不同的寻址方式的灵活应用
android·开发语言·数据库·人工智能·机器学习·数据挖掘·汇编语言
Crossoads7 天前
【汇编语言】更灵活的定位内存地址的方法(二)—— 从 [bx+idata] 到 [bx+si+idata]:让你灵活的访问内存
android·java·服务器·网络协议·tcp/ip·机器学习·汇编语言
Crossoads12 天前
【汇编语言】[BX]和loop指令(四)—— 汇编语言中的段前缀与内存保护:原理与应用解析
android·java·开发语言·数据库·机器学习·汇编语言
CYRUS_STUDIO14 天前
Android下的系统调用 (syscall),内联汇编syscall
android·linux·汇编语言
我不是程序猿儿14 天前
【数据结构】汇编语言和机器语言的‘数据结构‘
开发语言·数据结构·汇编语言·机器语言
CYRUS_STUDIO15 天前
Android 下内联汇编,Android Studio 汇编开发
android·汇编语言
Crossoads25 天前
【汇编语言】第一个程序(三)—— 深度剖析汇编程序的执行流程:编辑、编译、连接与运行
android·java·开发语言·数据库·网络协议·机器学习·汇编语言
xuan哈哈哈1 个月前
汇编语言
网络安全·汇编语言
Crossoads1 个月前
【汇编语言】第三章----寄存器(内存访问)(八)—— 栈顶越界的问题
java·开发语言·数据库·网络协议·tcp/ip·机器学习·汇编语言
Crossoads1 个月前
【汇编语言】寄存器(内存访问)(七)—— CPU提供的栈机制
android·java·tcp/ip·机器学习·cpu··汇编语言