汇编:Linux环境笔记

169 阅读4分钟

第三章 物理结构截屏2020-10-14 下午5.58.21

开关->晶体管->存储器 截屏2020-10-14 下午5.58.48

芯片和晶体管

1对1,4,8,16,8和16的整数倍

RAM 随机读取 对应顺序读取(例如硬盘)

截屏2020-10-14 下午6.03.28

截屏2020-10-14 下午6.03.35

截屏2020-10-14 下午6.03.43

车间工长 cpu 处理和分配任务

流水线 数据总线

车间工长的口袋 寄存器

计算机程序是存储在内存中的二进制指令列表.在内存中,它们与其它的数据字节的列表没有任何区别,只是当被取出时,cpu对它们的解释有所不同

车间工长的内脏

机器指令是用来掷电开关的二进制模式

cpu内部的晶体管分工: 开关,高速缓存,寄存器

cpu的微体系结构

工厂经理 操作系统

ROM上软件被称为BIOS

多任务模式:时间分片

计算机是一个能执行多任务的盒子

寻址

8080 数据总线8位 可同时读取8个字节

地址总线16位,可寻址64k

8086可寻址空间变为1M,引入了实模式分段模型

32位地址总线寻址4GB

64位寻址16艾字节 (2的60次方)

内存模式:

截屏2020-10-14 下午3.14.02

实模式分段模型 截屏2020-10-14 下午3.20.30

截屏2020-10-14 下午3.22.44

分段模型使用两个寄存器分别存储段地址和偏移地址,段地址可以从任意地址开始,固定65535字节

截屏2020-10-14 下午5.37.23

寄存器

截屏2020-10-14 下午5.39.56

实模式平面模型

实模式分段模型

保护模式平面模型

截屏2020-10-14 下午5.41.36

截屏2020-10-14 下午5.41.44

截屏2020-10-14 下午5.43.02

第五章

二进制文件和文本文件的区别

截屏2020-10-14 下午6.16.37

机器指令 助记符(例如PUSHF)

截屏2020-10-14 下午6.20.37

截屏2020-10-14 下午6.20.56

第六章

截屏2020-10-14 下午6.40.25

截屏2020-10-14 下午6.41.25

第七章

截屏2020-10-15 上午10.20.13

mov eax ,'WXYZ'

上图其实可以这样理解

低地址-------->高地址

最低有效字节-------->最高有效字节

W X Y Z

从低到高阅读顺序一致

数字的情况时因为数字根据阅读习惯是最高有效位在前,源码阅读时需要反序

补码

相加溢出一位,等于0

存储已0为中值循环,例如

0,1,2,3,...,n,,n-1,...,-2,-1

000 001 010 011 100 101 110 111 0 1 2 3 4 -3 -2 -1

0 1 2 3 4 5 6 7

求补码可以去掉符号位,按位求反+1,但要记住实际上是算对应的补码的手段,例如上面的3位比特里,求1的补码的到的是7的原码

第八章

.data

标号 区分大小写

db define byte

dw define word

dd define double

EQU

EatLen: equ $-EatMsg

$令牌标识nasm在中间文件中的位置

.bbs

.text

截屏2020-10-15 上午10.46.42

软件中断1

截屏2020-10-15 上午10.49.49

截屏2020-10-15 上午10.50.01

截屏2020-10-15 上午10.50.05

截屏2020-10-15 上午10.51.52

截屏2020-10-15 上午10.57.19

用户态和内核态的切换

硬件中断

区别在于是软件还是硬件实现

第九章 位 标志 分支 和表

自顶向下思考

先建立框架在逐步深入

截屏2020-10-15 上午11.07.23

截屏2020-10-15 上午11.07.37

从这里比较细节了,需要看书

第十章 分治

过程,宏

截屏2020-10-15 上午11.12.34

全局数据 .data .bbs 寄存器

局部数据

过程参数 寄存器

堆栈

截屏2020-10-15 上午11.16.55

call 指令会立即压入返回地址,为ret做准备,弹出时会先出返回地址,可以寻址使用栈里的数据,不必弹出

截屏2020-10-15 上午11.23.40

短转移 近转移 远转移

截屏2020-10-15 上午11.34.19

这里还有一些不了解,比如模块的全局变量在内存中怎么存储

截屏2020-10-15 上午11.45.00

第十一章 字符串

截屏2020-10-15 上午11.47.39

截屏2020-10-15 上午11.50.03

第十二章 C语言

截屏2020-10-15 上午11.54.27

截屏2020-10-15 上午11.55.34

截屏2020-10-15 上午11.57.05

调用c函数传参使用堆栈