第三章知识梳理

1.字单元:存放一个字型数据(16)位的内存单元,有两个地址连续的内存单元组成。高地址内存单元存放字形数据的高位字节,低地址内存单元存放字形数据的低位字节。

                  将起始地址为N的字单元简称为N地址字单元。

2.DS:8086CPU中的一个段寄存器,存放将要访问数据的段地址。

[...]:表示一个内存单元,[...]中的值表示内存单元的偏移地址.

8086CPU:自动取ds中的数据为内存单元的段地址。

内存单元的地址:DS中的值*16+[...]

3.mov指令:可以进行传送的所有操作对象。

mov 寄存器,数据

mov  寄存器,寄存器

mov 寄存器,内存单元

mov 内存单元,寄存器

mov 段寄存器,寄存器

mov  寄存器,段寄存器

mov 内存单元,段寄存器

mov 段寄存器,内存单元

mov 内存单元,常数

4.add指令:可以进行传送的所有操作对象。

add 寄存器,数据

add 寄存器,寄存器

add 寄存器,内存单元

add 内存单元,寄存器

add  内存单元,常数

5.sub指令:可以进行传送的所有操作对象。

sub 寄存器,数据

sub 寄存器,寄存器

sub 寄存器,内存单元

sub 内存单元,寄存器

sub 内存单元,常数

6.数据段:一组长度为N,地址连续,起始地址为16的倍数的内存单元当作专门存储数据的内存空间。

                只是编程的一种安排,可以用DS指向数据段的段地址,[...]具体的指向。

7.CPU提供的栈机制。

8086CPU:提供相关的指令以栈的形式来访问内存空间,既在基于8086CPU编程的时候,将一段内存空间当作栈来使用。

                   提供的入栈和出栈指令为:PUSH,POP.

                    以字为单位来进行。

                    栈顶位置:段寄存器SS,寄存器SP来表示,SS:SP=栈顶的位置。

                    CPU执行PUSH,POP指令时从SS和SP获取栈顶的位置。

8.栈顶超界问题:8086CPU不保证我们对栈的操作不会越界,8086CPU只知道栈顶在哪里,而不知道我们安排的栈空间有多大,所以需要自己注意栈顶超界问题。

9.push和pop指令。

(1)操作对象。

push (段寄存器,内存单元)寄存器         将(段寄存器,内存单元)寄存器中的值入栈

pop (段寄存器,内存单元)寄存器            出栈,用一个(段寄存器,内存单元)寄存器接受出栈的数据

(2)CPU执行过程。

push指令:先改变SP,再向SS:SP处传送入栈。

pop指令:先读取SS:SP处的数据,再改变SP,移动栈顶。

10.栈段:长度为N的一组地址连续,起始地址为16的倍数的内存单元,当作栈空间来使用。

                仅仅是编程的一种安排,必须用SS:SP来指向。

                以栈的方式来访问这段内存单元即为栈段。

11.一段内存单元是可以同时被认为是数据段(DS表示其段地址),代码段(CS表示其段地址),栈段(SS表示其段地址)。

猜你喜欢

转载自www.cnblogs.com/fxdtz/p/9928010.html
今日推荐