数据传送指令: MOV指令:将数据从源位置复制到目的位置,不做任何变化;MOV指令由四条指令组成:movb、movw、movl、movq;它们的区别在于它们操作的数据大小不同,分别为1、2、4、8字节; 压入和弹出栈数据: 遵循“后进先出”原则,通过push操作将数据压入栈中,通过pop操作删除数据 ...
分类:
其他好文 时间:
2018-11-11 20:16:29
阅读次数:
137
我们在子程序中使用的寄存器,很可能在主程序中也要使用,造成了寄存器使用上的冲突。解决的方法是,在子程序的开始将子程序中所有用到的寄存器中的内容都保存起来,在子程序返回前再恢复。可以用栈来保存寄存器中的内容。 以后,我们编写子程序的标准框架如下: 子程序开始: 子程序中使用的寄存器入栈 子程序内容 子 ...
分类:
其他好文 时间:
2018-11-08 13:46:09
阅读次数:
219
about 算法 项目介绍 工作之余,代码敲多了,停下来思考思考,会有异常不到的收获。。。只为更好的自己 如何用栈实现队列? 提示下:用一个栈肯定是没办法实现队列,但如果我们有两个栈呢? 分析:栈和队列的特性 栈是先进后出,FILO 出入元素都是在同一端(栈顶) 入栈 1540432924606.p ...
分类:
其他好文 时间:
2018-11-08 01:11:05
阅读次数:
163
在本章中,我们从访问内存的角度继续学习了几个寄存器。我们提出字单元的概念:字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在80 ...
分类:
其他好文 时间:
2018-11-07 23:13:53
阅读次数:
343
题目描述: 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, si ...
分类:
编程语言 时间:
2018-11-07 20:04:51
阅读次数:
517
题目描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: ...
分类:
编程语言 时间:
2018-11-07 19:57:21
阅读次数:
238
C语言实现顺序栈和OOP实现顺序栈 [TOC] 1,顺序栈 (1)定义:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈 ...
分类:
编程语言 时间:
2018-11-07 16:00:28
阅读次数:
338
一、栈的含义 用于描述方法执行的动态内存模型,简单来说就是代码中的方法模块。主要用于局部变量表。栈的大小在编译器中就已经分配了空间,在进入一个方法时,这个方法需要栈帧分配多少内存是固定的,运行期间是不会改变大小。 局部变量表示指:存放编译期可知的各种基本类型和引用类型。 二、栈帧 说到了栈,就不得不 ...
分类:
其他好文 时间:
2018-11-06 22:35:40
阅读次数:
191
0xFF15CALL后面的四字节是存放地址的地址0xFF25JMP后面的四字节是存放地址的地址0xE8CALL后面四个字节是地址0xE9JMP后面四个字节是偏移0x68PUSH后面的四个字节入栈0x6APUSH后面的一个字节入栈
分类:
其他好文 时间:
2018-11-06 16:42:08
阅读次数:
519
在第三章的学习中,我们开始更深入地学习寄存器。 (一)字在内存中的存储与内存单元地址 在第二章中,我们了解到,在CPU中,用16位寄存器来存储一个字,但是由于内存单元是字节单元(即在一个单元内只能存放一个字节),所以一个字要用两个内存单元来存放。举个例子,我们用0、1两个单元来存放数据4E20H,0 ...
分类:
其他好文 时间:
2018-11-06 00:55:30
阅读次数:
142