8086CPU寄存器
2018-02-04 本文已影响0人
我的昵称在不在
1.
汇编和机器语言一对一,可以反编译
2.
地址总线,控制总线(读/写/其他),数据总线
物理地址=段地址x16+偏移地址 (偏移地址为16位,16位地址的寻址能力是64KB,所以一个段的长度最大为64KB)
3.寄存器
- 字节:byte,1个字节由8bit组成,可以存储在8位寄存器中
- 字:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节
4.段寄存器
段地址是由段寄存器提供的
CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)、ES(附加段寄存器)
5.
在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息
cpu在工作的时候有的信息看作指令,有的信息看作数据。
eg: 1000100111011000 ->89D8H(数据)
1000100111011000 ->mov ax,bx(程序)
6.jmp
jmp 2AE3:3 执行后:CS=2AE3H, IP=0003H, CPU 将从2AE33H处读取指令
7.往内存中写数据
访问内存数据,段地址:[偏移地址]
eg:
mov ax, 1122h
mov bx, 1000h
mov ds, bx
mov ds:[0h], ax (或者 mov [0h], ax[不写段地址,默认就是ds里的段地址])
8.大小端
小端模式:高地址放高字节,低地址放低字节
大端模式,反之。
9.SS
- 任意时刻,SS:SP指向栈顶元素
- PUSH POP POP的时候只移动指针的位置,上边的元素并不销毁
- 栈空,SS:SP指向栈空间最高地址单元的下一个单元
10.利用栈交换两个寄存器的值
mov ax, 1122h
mov bx, 3344h
push ax
push bx
pop ax
pop bx