动态线条
动态线条end

绪论

导学

1)绪论

2)访问寄存器和内存

3)汇编语言程序

4)内存寻址方式

5)流程转移与子程序

6)中断及其应用

7)高级汇编语言技术

为什么要学习汇编语言

所有的高级语言都是在汇编语言之后产生。汇编语言仍发挥着不可替代的作用,主要完成高级语言无法完成的任务。比如说效率,应用于对于速度要求高的模块优化,

应用场景

1)效率

     运行效率:开发软件的核心部件,快速执行和实时响应

     开发效率:做合适的事,开发效率无敌

2)底层

     操作系统的内核

     嵌入式系统:家用电器、仪表仪器、物联网

由机器语言到汇编语言

机器语言

1)机器语言是机器指令的集合

2)机器指令时一台计算器可以正确执行的命令

3)机器指令是由一串二进制数表示,例:01010000

汇编语言

1)汇编语言的主体是汇编指令

2)汇编指令和机器指令的差别在于指令的表达方法上

     汇编指令时机器指令便于记忆的书写格式

     汇编指令是机器指令的助记符,因此汇编指令与机器指令时一一对应的

;将bx值移动到ax中
mov ax,bx

计算机的组成

主板上部件

1)CPU:控制整个计算机的晕死安及控制

2)总线:传输地址、数据、指令

3)内存条:存放数据与指令

4)扩展槽(链接外部设备)

指令和数据的表示

1)存储位置:内存或磁盘上

2)数据和指令本质上都是二进制数据

3)数据展示给用户的具体表示

     二进制:110111B

     八进制:‭67‬O

     十进制:‭55‬D

     十六进制(最常用):‭37‬H

计算机的总线

在计算机中专门连接CPU和其他芯片的导线,统称为总线。

1)地址总线:指定存储单元,地址总线的宽度决定了可寻址的范围(宽度:如果有N根地址线,那么地址总线宽度为N)。

2)数据总线:cpu与内存或其他器件之间进行数据传送的物理通道。数据总线的宽度决定了数据传输的速度。

3)控制总线:cpu通过控制总线对外部器件进行控制,控制总线是一些不同控制线的集合,控制总线宽度决定了cpu对外部器件的控制能力。

CUP 地址总线宽度 寻址能力 数据总线宽度 一次传送数据 读取1KB所需要的次数
8080 16 640K 8 1B 1024
8088 20 1MB 8 1B 1024
8086 20 1MB 16 2B 512
80286 24 16MB 16 2B 512
80386 32 4GB 32 4B 256

内存的读写与地址空间

CPU想要进行数据的读写,必须与外部器件进行三类信息的交互

1)存储单元的地址(地址信息)

2)器件的选择,读或写命令(控制信息)

3)读或写的数据(数据信息)

将数据从内存读取寄存器的过程

1)地址总线发送数据所在的地址

2)控制总线发送读取命令

3)数据总线将数据从内存传输到寄存器中

将数据从寄存器写入内存的过程

1)地址总线发送数据所需要存放的地址

2)控制总线发送写入命令

3)数据总线将数据从寄存器传输到内存中

什么是内存地址空间

1)CPU地址总线宽度为N,寻址空间为2NB

2)8086CPU的地址总线宽度为20,那么可以寻址1MB个内存单元,其内存空间为1MB(默认对字节进行编址)

3)所有的物理存储器被看做一个由若干存储单元组成的逻辑存储器

4)每个物理存储器在这个逻辑存储器中占有一个物理段,即一段地址空间

5)CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据

image-20220106143032045

汇编语言实践环境的搭建

选择8086的理由

简单,简单,还是简单!!

达成目标

理解计算机底层工作原理

作为继续扩展的基础->80x86汇编、Linux汇编、ARM汇编

学习逆向分析的开端

工具

1)DOS模拟器:DOSBOX

https://www.dosbox.com/

2)8086汇编工作环境(masm)

posted @ 2022-01-16 12:51  v1v1v1  阅读(74)  评论(0)    收藏  举报