1. 字在内存中存储时,占两个字节,即两个地址连续的内存单元,其中X86中,字的低位存放在低地址,高位存放高地址单元。
2. mov 指令访问内存单元格式,mov al,[address] ,其中address 只能是数据的偏移地址,数据的段地址存放在ds数据段地址寄存器中。
3. mov,add,sub具有两个操作对象指令,jmp具有一个操作对象
CPU提供栈机制(栈:内存空间的一部分而已,唯一的特别之处就是用一种特殊的人为规定的方式访问的的内存空间)
——提供相关的指令,以栈的方式访问内存。
8086提供入栈和出栈指令,最基本两个push和pop。Eg,push ax,pop ax。
注意:8086 入栈和出栈的命令以字为单位。
CPU如何知道栈顶的位置?
8086中有SS和SP,SS:SP 指向栈顶元素
push ax:
(1)SP = SP-2(每次都是一个字,两个内存单元)栈顶是低地址
(2)将ax中的内容送入SS:SP指向的内存单元中。
pop ax类似分析
栈顶超界问题:
8086没有提供防止的机制,需要编程注意⚠️。
8086CPU只记录栈顶地址,栈的大小空间需要自己把握。
本质上是一种内存传送指令,包括两步,与mov不同。