程序的简要运行流程
1、程序加载到内存中
2、CPU找到程序即将执行指令位置,并执行程序
那么CPU是如何找到程序即将执行指令位置呢?
–需要使用寄存器(CS:IP)寻址来确定即将执行指令位置,在第三篇文章中会讲到。
什么是寄存器
寄存器是CPU内的组成部分。有限存储容量的高速存储部件,他们可以用来暂存指令、数据和地址。
存在于CPU中
用于存储数据
速度快
数量有限
寄存器简介
一个二进制数 = 1位;8位=1字节;2字节=1字
8086CPU含有16个寄存器,所有的寄存器都是16位的,可以存放两个字节,即存放一个字。
80386CPU含有16个寄存器,所有的寄存器都是32位的,可以存放四个字节,即存放两个字。
数据寄存器中的累加寄存器
16—AX
32—EAX
64—RAX
共有8个通用寄存器
(其中只有数据寄存器可以将16位分成8位的。)
通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果,除此之外,他们还各自具有一些特殊的功能。
注意:
在16位CPU中,AX、BX、CX和DX不能存放存储单元的地址
在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可以作为指针寄存器,所以,这些32位寄存器更具有通用性。
简单汇编指令
例如:
mov ax,11F6H (将11存入到AH中,将F6存入到AL中);
add al,0AH(将al中的数与0A相加并将结果存入到al当中);
但是如果按这两步依次进行,会发现结果为 F6+0A=100H (F6为8位,100为9位,此时需要将高位舍弃,将低8位数据存放到al当中,即ax的结果为 11 00)