add指令
CPU中的栈机制
CPU提供栈作为内存空间,它具有以下特点
1.栈顶的段地址储存在SS中,偏移地址储存在SP中。SS:SP时刻指向栈顶元素。
2.push,pop指令的最小工作单位是字。
3.push(入栈)操作导致SP减小2个字节,pop(出栈)反之。
4.当出栈入栈操作导致栈顶位置在栈外时,push/pop操作会导致栈外空间数据被覆盖。
5.由于SP寄存器为16位,因而它储存的地址范围为0~2^16(64KB)。所以栈的空间最大为64KB。
mov指令与push指令
1.mov指令和push指令都是CPU用来实现内存单元与寄存器间数据传递的手段。
2.mov指令中,由DS给出段地址,由IP给出偏移地址。push指令中,由SS给出段地址,SP给出偏移地址。
3.每次push指令执行时,都需要更改偏移地址(减二),而move指令则不需要。这么说吧,mov指令是快递员投递,只要把该送到哪家的信放进信筒就够了,而push指令是图书馆整理员,把书放到书架上时还要注意书的排列顺序。
如果改用push指令