汇编言语——进栈出栈指令2015.pptVIP

  • 2
  • 0
  • 约1.5千字
  • 约 7页
  • 2017-06-10 发布于四川
  • 举报
* * 6.1.2 进栈与出栈指令 栈操作指令以它特有的方式存取数据,属于数据传递类指令,但又与MOV等指令有很大的区别。 6.1.2.1 PUSH指令 【指令格式】PUSH ?d 【功能】先把SP的值减去2,然后把操作数d指明的字型数据放入以SS为段地址、SP为偏移地址所对应的内存单元中。 【说明】 (1)这是单操作数指令,操作数d可以是包括段寄存器在内的任何字型寄存器,或者内存型寻址方式,但不能是立即寻址,当使用内存型寻址方式时可以使用段跨越。 (2)PUSH指令的功能包括移动栈顶和存入数据两部分,两部分连续完成,密不可分。 (3)操作数d进栈是以减2以后的SP的值作为偏移地址,但程序中不允许出现[SP]的写法。不要与基地址寄存器或变址寄存器用作偏地址时的写法相混淆,也就是说,把PUSH指令理解成下面两条指令的组合是不正确的: SUB SP, 2 MOV [SP], d 因为指令“MOV [SP], d”存在语法错误。 (4)PUSH指令会导致栈顶指针的移动,如果用PUSH指令把很多数据进栈,使SP不断减2,就有可能超出栈的有效范围。在一些高级语言中这种现象会导致堆栈溢出错误,但8088对

文档评论(0)

1亿VIP精品文档

相关文档