3.1 内存中字的存储
内存中上为低地址,下为高地址:上存储低8位,下存储高8位数据
将起始地址为N的
字单元称为
N地址字单元。
3.2 DS和[address] 来取内存中的数据
3.3 字的传送
3.4 mov、add、sub指令
①mov
mov 寄存器,段寄存器
mov 内存单元,段寄存器
mov 段寄存器,内存单元
②add
③sub减法
3.5 数据段
例如:
例如:
3.6 栈
3.7 CPU提供的栈机制 SS:SP(栈顶的段地址:偏移地址,永远指向栈顶元素)
push和pop只进行字操作
在基于8086CPU编程时,可以将一段内存当做栈使用。
push ax
pop ax
若将10000H~1000FH这段空间当做栈,初始状态栈是空的,此时SS:SP为1000:0010
push和pop指令操作后,并非把数据给搬出来,数据仍在那个内存中,只是SP指针移动了,push就是用新数覆盖旧数。
3.8 栈顶越界的问题
8086CPU中没有记录栈顶上限和栈底的寄存器,在编程时,要自己操心栈顶越界的问题。
3.9 push、pop指令
3.10 栈段
把一组内存单元定义为一个段,把这个段当做栈空间来用,从而定义了
栈段。
一段内存,可以既是代码段,又是数据段,还可以是栈段。具体看CPU中寄存器的设置,即cs,ip,ds,ss,sp的指向。