汇编语言学习笔记1
-
CPU如何调用内存
加载到内存,CPU使用 -
存储单元从0开始
-
CPU要进行数据的读写,必须和外部器件进行三类信息交互
(1)存储单元地址(地址信息)
(2)器件选择,读或写命令(控制信息)
(3)读或写的数据(数据信息)
CPU如何对存储器的读和写
从CPU到内存有地址总线,数据总线,控制总线
如何读:CPU通过地址总线发出一个地址,再由发出控制信息的器件发出读/写的指令,内存通过数据线将地址上的信息传给CPU中存放数据的器件/存放数据的器件将一个数据写入内存指定的地址
如何命令计算机
一串二进制既可以表示数据,也可以表示指令:那怎么让计算机区分数据和指令?
通过从不同的总线传送,地址,数据和控制总线
寻址能力:地址总线上能传递多少个不同的信息,CPU就能对多少存储单元进行寻址。64位CPU指的是地址总线的限数
数据总线:一个CPU有N根地址总线,则可以说CPU的地址总线宽度为N,这样的CPU最多存放2的N次方个内存单元。宽度决定了CPU对信息的传递速度
控制总线是不同控制线的集合,控制总线的宽度决定了CPU对外部器件的控制能力,有多少控制总线,就意味着CPU对外部器件有多少种控制。控制总线发出控制信息,
内存地址空间:
CPU能寻址的内存空间构成了CPU的内存地址空间
寄存器 CPU工作原理
CPU由运算器,控制器,寄存器等器件构成,靠内部总线相连
内部总线实现CPU内部各个器件之间的联系
外部总线实现CPU和主板上其他器件的联系
寄存器:存放暂时处理的数据,如进行两个数据的加减,将两个数据放在不同的两个寄存器中,运算器命令相加,再存放到另一个寄存器中
8086CPU中的16位两字节计算器,AX,BX,CX,DX通常用来存放一般性数据被称为通用寄存器
注意数据再寄存器中的存放方式
为了兼并过去的8位寄存器,AX分为高位和低位AH和AL,存储低位AH全部填0
字在寄存器中的存储:字:一次读取16个位的内存单元,一个字等于两个字节
汇编指令不区分大小写
汇编指令:“mov ax, 18 将18送进AX” == “AX = 18”
“add ax, 8(bx) 将寄存器AX中的数值加上8(bx),结果存在AX中” == “AX += 8”
“move ax, bx 将b/x数据送入寄存器AX” == “AX= BX”
丢失的数值,指的是不能在8位寄存器中保存,但CPU并不是真的不会保存*
8086CPU给出物理地址的方法:
不同:有20位地址总线,可以传输20位地址,寻址能力位1M,
内部为16位结构,只能传送16位地址,表现出的寻址能力有64K;
如何解决这种问题:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位物理地址
CPU在内部将地址分为段地址和偏移地址传给地址加法器,变成20位的物理地址,通过输入输出控制电路,将物理地址通过地址总线传输给内存
物理地址 = 段地址*16 + 偏移地址
8086CPU有四个段寄存器:CS,DS,SS,ES
CS为代码段寄存器,IP为指令指针寄存器
读取一条指令后,IP的值自动增加,使得CPU可以读取下一条指令。因为当前读入的指令B82301长度为3byte,所以IP自增3.此时CS:IP指向2000:0003
8086CPU工作过程的简要描述:
- 从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器
- IP = IP + 所读取指令的长度,从而能指向下一条指令
- 执行指令,转到步骤1,重复过程
8086PC工作过程的简要描述: - 在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS = FFFFH, IP = 0000H。即在PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,而这就是PC机开机后执行的第一条指令
如果说,内存中的一段信息曾经被CPU执行过,其所在内存单元必然被CS:IP指向过
如何求改AX的值
mov指令
同时修改CS:IP的内容:jmp指令
格式: 段地址:偏移地址
仅修改IP地址:
格式:Jmp 某一合法的寄存器
如:更改IP内容为ax
mov, ax, 200H
jmp ax
代码段:
对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段
可以将长度为N的一组代码,存在一组地址连续,起始地址为16的倍数的
- 王爽汇编语言学习笔记(十) --CALL和RET指令
- 汇编语言学习笔记10
- 汇编语言学习笔记(七)更灵活的定位内存地址的方法
- 汇编语言学习笔记一:CS和IP寄存器
- 32位汇编语言学习笔记(44)--显示命令行参数(3)
- IntelASMIrvine汇编语言学习笔记
- windows下32位汇编语言学习笔记 第四章 第一个窗口程序 1 (消息的使用和入口代码)
- [置顶] [汇编语言学习笔记][第三章寄存器(内存访问)]
- win32汇编语言学习笔记2
- Windows环境下32位汇编语言程序设计第三版学习笔记之一
- 汇编语言入门学习笔记1
- 汇编程序语言设计 MOOC 郑州大学 学习笔记目录
- windows下32位汇编语言学习笔记
- 汇编语言学习笔记(九)转移指令的原理
- 汇编语言基础知识学习笔记(二)
- windows下32位汇编语言学习笔记 第十章 内存管理部分 1
- 汇编语言学习笔记(八)
- 王爽汇编语言学习笔记(三)--寄存器(内存访问)
- [汇编语言学习笔记][第一章基础知识]
- 汇编语言学习笔记(5)