寄存器(内存访问)知识整理

 使用mov指令可以完成两种传送:1、将数据直接送入寄存器;2、将一个寄存器中的内容送入另一个寄存器。

 “[…]”表示一个内存单元 ,“[…]”中的0表示内存单元的偏移地址。指令执行时,8086CPU自动取ds中的数据为内存单元的段地址。8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器,所以 mov ds,1000h这条指令是非法的。

  mov指令的几种形式:   mov 寄存器,数据      如 mov ax,8

              mov  寄存器,寄存器  如 mov ax,bx  

              mov 寄存器,内存单元 如 mov ax,[0]

                             mov 内存单元,寄存器    如 mov [0],ax

             mov 段寄存器,寄存器   如 mov ds,ax

  栈:后进先出。8086CPU提供相关的指令来以栈的方式访问内存空间。在编程的时候,可以将一段内存当作栈来使用。  PUSH(入栈)   POP(出栈)

  段寄存器SS:不能直接赋值 需要中转  寄存器SP:可以直接赋值。  任意时刻,SS:SP指向栈顶元素。

  push ax的执行: (1) SP=SP-2,SS:SP指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶;(2)将ax中的内容送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶。 栈为空时,栈顶指向栈低+2。

  pop指令的执行步骤:(1)从SS:SP指向的字单元中读取数据;(2)SP=SP+2。

原文地址:https://www.cnblogs.com/smallblog/p/9849241.html