我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令栈 >

关于汇编语言问题入栈出栈什么用

归档日期:07-05       文本归类:指令栈      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  知道合伙人软件行家采纳数:14896获赞数:27330国家科技进步奖向TA提问展开全部汇编语言中堆栈的操作有专门的语句指令。

  保护数据用。就是将DS AX 里的数据先暂存在堆栈里,这就是入栈(指令为PUSH)。然后,可以对它们进行操作而不会影响原来的数据。到需要原来的数据时,再出栈(POP) 。

  栈就相当于一个细长的装弹珠的瓶子(瓶口、瓶身内部截面均只能通过一个弹珠),不同颜色的弹珠只能从瓶口装入,也只能从瓶口取出,在瓶内的弹珠的顺序是不能改变的。这些弹珠具有“先进后出、后进先出”的特性。瓶子有一定的长度,装满弹珠后就不能再装了,再装就直接滚跑了(溢出)。

  程序不都是线性的,有分支、有循环,有主程序、也有子程序。在子程序中,栈通常用来保存现场(进栈--push、pusha、pushf),在栈中定义局部变量,执行完成后要恢复现场(出栈--popf、popa、pop)。没有栈这种数据结构,很难想象现在的软件是个什么样子。

  用汇编语言(masm)编写程序段,实现从键盘输入十个一位10进制数后累加以非压缩BCD码形式存放在AH和AL中。

  请注意inputnum子程序,在开始部分执行了 push ax,就是为了保存寄存器ax的值,因为在int 21H中断子程序中要用ax进行入口参数设置。

  展开全部用于缓存数据,保护寄存器或者进行寄存器与寄存器间数据传输。而且有些寄存器的值只能通过堆栈操作完成。比如程序寄存器的值CS只能通过堆栈操作完成读取:

  POP入栈是把数据压入栈段中;PUSH出栈是把数据从栈段中拿出来;入栈与出栈是遵循先进后出的原则!入栈出栈其实是个临时存储数据作用!SS指向栈段的段地址,SP指向栈段的顶端。

本文链接:http://egao-p.com/zhilingzhan/240.html