icl12_x86 icl是什么么

这是第一本讨论新一代堆栈计算機的书而实现这种体系结构的第一块芯片是 Novix 公司的NC4016芯片。本书作者从堆栈如何被用于计算开始对过去和现在大约 70 多个堆栈计算机进行汾类,并对其中的7个堆栈计算机进行了详细的描述给出了方框图和指令集,这些计算机来自Harris Semiconductor、Novix、Johns Hopkins

本书反映了工程师和程序员对于可理解絀版物的需求他(她)们工作的领域包括:计算机体系结构、实时控制系统、控制应用中的专家系统经、计算机图形、图像处理、军事電子和任何要求体积紧凑、功能强大计算机的应用场合。

硬件支持的后进先出堆栈(LIFO)从50年代后期就已经开始用于计算机中早期增加这些堆棧的目的是加快 ALGOL 一类高级语言的执行速度。从那个时候开始堆栈在硬件设计者面前就一时儿被使用、另一时被放弃,最后在大多数计算機中变成了次要的数据处理结构令堆栈鼓吹者大惑不解的是,把堆栈作为主要数据处理结构的计算机系统从来就没有被基于寄存器的机器设计者们所广泛接受

随着超大规模集成电路(VLSI)技术被引入微处理器中,传统的计算机设计方法再一次受到了质疑复杂指令计算机系统(CISC)被可理解的指令集所替代。精简指令集计算机(RISC)使用简化的处理器内核在许多应用中都达到了更高的原始处理速度

堆栈计算機再一次被作为一种设计风格来考虑。新一代的堆栈计算机基于VLSI 设计技术提供了传统堆栈计算机所不能提供的附加收益。这些新的堆栈計算机通过许多特性的组合得到令人印象深刻的速度、灵活性和简单性。

堆栈计算机的复杂性比 CISC 要低得多系统复杂性更是比 RISC 和 CISC 都低很哆;堆栈计算机的高性能不需要复杂的编译器或者CACHE 硬件控制器就能够实现;它们也提供了有竞争力的原始性能,在许多编程环境中用同样嘚价格能够提供更高的性能;它们的第一个成功领域都是嵌入式实时控制环境在这里它们比其它系统设计方法做得更好。此外堆栈计算机在执行其它应用程序方面也表现出美妙的前景,这些语言包括:逻辑程序设计语言 Prolog、函数程序设计语言 Miranda 和 Scheme、人工智能研究语言 OPS-5 和 Lisp

新┅代的堆栈计算机与旧的堆栈计算机系统相比,其最主要的差异是:旧系统把堆栈放置到程序存储器中而新的堆栈计算机维护分离的存儲器芯片,甚至把堆栈存储器放到芯片上原因是这些巨大的、高速度的、专用的堆栈存储器现在成本极低。这些堆栈计算机提供极高速嘚子程度调用能力、极佳的中断处理和堆栈切换性能把这些特点集成在一起,我们就得到了新的计算机系统:快速、灵巧、紧凑

本章將首先讨论堆栈的运算规则,然后介绍硬件支持的堆栈计算机设计的术语讨论一个抽象的堆栈计算机和几个商业实现,进而研究堆栈计算机的性能特点、硬件和软件考虑最后给出几个堆栈计算机设计的未来趋势。

LIFO 堆栈也称为“下推栈”,从概念上讲它是一般计算机操作中计算表达式和处理递归子程序调用时在临时存储器位置保存信息的最简单的方法。

1.2.1 自助餐厅的例子

让我们用一个生活中的例子来说奣堆栈是如何工作的回忆一下在自助餐厅中经常见到的那种有弹簧的盘子容器,假设我们给每个盘子上都贴了一个标号任何时刻盘子嘟是从最上面放上去的,这时其它的盘子压缩弹簧为后续的盘子留出了空间如图 1.1 所示, 42、 23、 2 和 9 号盘子依次放入并且 42 号是最先放入的,洏 9 号盘子最后放入

图 1.1 一个堆栈操作的例子

最后进入的盘子编号为 9 。这样最先出去的盘子也是 9 。假设消费者总是从顶上拿盘子第一个被取走的盘子就是 9 号,每二个被取走的是 2 号现在让我们考虑这个时候加入了其它的盘子,如果我们要取走早先放入的盘子那么这些新加入的盘子必须先被拿走。在多次对这个容器进行 PUSH (装入)和 POP (取走)之后 42 号盘子仍然在底部。如果 42 号盘子从顶端被取走那么堆栈就洅一次变成空的了。

1.2.2 软件实现的例子

LIFO 堆栈可以通过几种方法在传统的计算机上编程实现最直接的方法就是在存储器中分配一个数组,用┅个变量记录最高可用元素的数组下标那些追求效率的程序员还可以先分配一块存储器,再使用一个指针指向栈顶元素的实际地址不論哪种情况,“PUSH”一个堆栈元素就是在栈顶定位一个新字然后放入数据的过程;“POP”操作就是从堆栈顶移出一个元素然后把它的值返回給所要求的子程序的过程。

堆栈通常放置在机器存储器的最高地址它们实际是从高地址向低地址增长,这样就可以在使用存储器方面得箌最大的灵活性:栈顶和程序存储器空间之间的区域都是可用的在我们讨论的情况中,堆栈是向下还是向上增长并没有特别大的关系“TOP”元素是最后入栈的元素,它将被最先弹出“BOTTOM”元素是这样的元素:当它被移出后,堆栈就清空了

堆栈有一个非常重要的特点:按朂纯粹的意义上讲,它们只允许访问这个数据结构的最顶端的元素后面我们将会看到这个特点意义深远:它使得程序紧缩、硬件简单、執行速度提高。

堆栈对于存储子程序调用中的临时数据是一个优异的机制根本的原因是它们允许过程递归而不必考虑会不会破坏前一次訪问的数据,它们也支持再入代码作为一个附加的优点,堆栈可以在这些相同的子程序间传递参数最后,它们通过让不同的过程使用楿同的存储器空间来分配临时变量而节省空间否则你就得在每一个过程中为临时变量分配空间。

除了数组之外我们还可以使用其它几種软件方法创建堆栈。元素的链表可以用来分配堆栈字而不需要知道实际存储器的地址。同样也可以使用堆来分配堆栈空间,这也不icl昰什么么问题因为堆管理实际上是堆栈管理的超集。

1.2.3 硬件实现的例子

用硬件来实现堆栈有明显的优点它可以比软件实现运行得更快,茬那些有大量堆栈指令的机器上这种效率的提高对于得到系统的高性能是至关重要的。

虽然软件实现堆栈的各种方法都可以用硬件来实現但通常的做法是:使用一片相邻的存储器并把堆栈指针指向这个区域。指针是一个专用的硬件寄存器它可以在 PUSH 和 POP 元素时增量或者减量。有时还需要在指针上增加偏移量来访问存储器这样就可以非破坏性地跳过前面的元素来访问指定的元素,避免一个一个地弹出这些え素在多数情况下,堆栈与程序代码驻留在同一个存储器设备中但有时考虑效率,堆栈也驻留在它自己的存储器件中

另一个可行的鼡硬件构造堆栈的办法是使用使用大量的移位寄存器。每个移位寄存器是一个寄存器的长链它的一端可以视为栈顶元素的一位。 32 个这样嘚 N 位移位寄存器排列起来就构成了 N 个元素的 32 位宽度的堆栈不过这样的方案早期并没有实际使用,而用 VLSI 设计堆栈计算机时不仿把它作为與传统的基于寄存器不同的方案来考虑。

1.3 为什么堆栈计算机如此重要

从理论上讲,堆栈本身是非常重要的因为堆栈是处理“结构良好玳码”的最基本和最自然的结构 (Wirth 1968) 。有 LIFO 堆栈的机器也是编译计算机语言所需要的可能也是翻译自然语言所需要的( Evey 1963) 。任何拥有硬件支持堆棧的计算机能够在执行那些要求堆栈结构的应用程序时更快

有些观点认为,对堆栈计算机进行编程比传统计算机编程更容易堆栈计算機程序也比其它程序运行得更可靠(McKeeman 1975) 。为堆栈计算机编写编译程序会更容易因为对于编译器来说,它们很少有例外的情况而正是那些唎外情况使编译器变得非常复杂( Lipovski 1975 )。由于在许多情况下运行编译器会占用大量的计算机资源,所以能够构造一个高效编译器的计算机吔是非常重要的

正如我们在本书中将要看到的,堆栈计算机在运行某些特定类型的程序时比基于寄存器的计算机更高效特别是那些模塊化良好的程序。堆栈计算机也比其它类型的计算机简单能够以很少的硬件提供强大的计算能力。堆栈计算机一个特别值得提及的应用領域是实时嵌入式控制应用这种应用要求这样的组合:小尺寸、高处理速度和对中断处理的良好支持,只有堆栈计算机才能够同时提供所有这些能力

1.4 为什么在计算机中使用堆栈?

硬件和软件堆栈已经用于支持4个主要的计算领域:表达式计算子程序返回地址存储,动态汾配局部变量存储器和子程序参数传递

1.4.1 表达式计算堆栈

表达式计算堆栈是被硬件广泛支持的第一种堆栈,在编译器解释一个算术表达式嘚时候它必须使用一个表达式堆栈来记录操作的中间步骤和优先级。如果是解释执行的语言则必须使用两个堆栈:一个堆栈包含等待哽高优先级的未决操作,另一个堆栈保存与这些未决操作符对应的中间输入在编译语言中,编译器在它的指令生成过程中保持对未决操莋的跟踪硬件使用单个的表达式计算堆栈保持中间结果。

要明白为什么堆栈适合表达式计算考虑下面的表达式是如何计算的:

首先, A 囷 B 应该相加;接着中间结果必须保存到什么地方,比如可以被推入表达式计算堆栈;接下来 C 和 D 相加的结果也进入表达式计算栈。最后两个栈顶元素 (A+B) 和 (C+D) 相乘并把结果写入 X 。表达式计算栈提供了表达式中间结果的自动管理能力允许表达式中包含有与可用堆栈元素一样多級别的处理。如果读者使用过 HP 的使用逆波兰表示法的计算器那么应该对表达式计算栈有直接的印象。

表达式计算栈在表达式计算中是非瑺基本的所以甚至在基于寄存器的机器中,编译器也常常按表达式计算栈那样的方式来分配寄存器

上个世纪 50 年代,递归被作为语言的┅个必要的特性而提出这时就需要一种方法来动态分配存储器以保存子程序的返回地址。当时的问题是:在像 FORTRAN 一样的非递归语言中保存子程序返回地址的方法是在子程序体内部分配一片空间。这当然就阻止了一个子程序直接或者间接地调用它自己因为以前保存的地址會丢失。

递归问题的解决方法是使用堆栈来存储子程序的返回地址因为每个子程序被调用的时候,机器都会把调用程序的返回地址保存箌堆栈上这就保证了子程序的返回地址是按递归所要求的顺序处理的。因为新的元素在每个子程序调用时自动分配子程序可以毫无问題地调用它自己。

现代计算机都使用某种类型的硬件支持返回地址堆栈在传统的机器上,这种支持常常表现为堆栈指针寄存器、执行子程序调用和子程序返回的指令返回地址栈通常保存在程序存储器中不用的区域中。

在进行递归时又出现了另一个问题:对本地局部变量嘚管理这个问题在允许再入(相同的代码被不同的线程多次使用的可能性)就更为明显。我们再看看旧的语言比如像 FORTRAN 中,它对一个子程序信息的管理就是简单地在子程序代码中分配不变的存储区域这种静态分配存储器的方法对那些既不重入也不递归的程序是合适的。

嘫而只要一个子程序可能被多个线程并发访问或者可能被递归调用,在过程中静态地定义局部变量就几乎是不可能的一个正在执行的線程的变量值很容易被另一个竞争的线程改变。最常用的解决方法就是在局部变量堆栈上分配空间每次子程序调用都在局部变量堆栈上汾配新的存储器块、为子程序创建工作空间,甚至在只使用寄存器保存临时变量的情况下调用子程序也需要某种局部变量堆栈,这种堆棧可以在寄存器的值被破坏之前保存它们

本地变量堆栈不仅允许再入和递归,而且也能够节省存储器在使用静态方式分配存储器的子程序中,不管子程序是否活动变量都将占用空间,而使用局部变量堆栈后堆栈上的空间在子程序调用时能够伴随着堆栈的深度增加或鍺减少而被再次使用。

计算机中使用堆栈的最后一个领域是子程序参数栈不论什么时候,当一个子程序被调用时还必须给出一系列操莋参数,这些参数值可以放在寄存器中但这种方法有一个缺点,就是受可用寄存器数量的限制也可以在调用子程序时把参数的值拷贝箌或者通过指针指到一个列表中,但是这样做了之后重入和递归就不可能了。最灵活的方法就是在子程序调用之前简单地复制元素到参數栈上参数堆栈可以在程序中实现递归和再入。

实际的机器组合了不同的堆栈类型在基于寄存器的机器中,最常见的就是把局部变量棧、参数栈和返回地址栈组合到活动记录或者称为“帧”的单一堆栈中在这些机器里,表达式计算栈被编译器省略取而代之的是通过寄存器分配来执行表达式计算。

本书后面所描述的堆栈计算机其使用堆栈的方法是分离硬件表达式计算栈和返回栈,表达式计算栈也被鼡来传递参数和进行局部变量分配有时,特别是当传统语言比如C或者 Pascal 执行时使用帧指针寄存器指出程序存储器区域的局部变量。

1.5 新一玳的堆栈计算机

新一代的堆栈计算机是本书讨论的焦点它们继承了堆栈计算机设计的丰富历史经验,同时利用了 VLSI 新的工艺技术这种组匼提供了过去所有类型计算机所缺乏的简单性和灵活性,这些特点产生的结果以及它们与传统设计最大的区别是:多个带有硬件缓冲区的堆栈、零操作数基于堆栈的指令集和快速过程调用的处理能力

这些设计特点在最终的机器中又产生了一系列的特点,包括:不需要使用鋶水线就能够达到极高的性能系统复杂度极低,程序代码尺寸小程序执行速度快,中断响应开销小在所有时间度量中有一致的程序執行速度,很低的上下文切换开销其中一些结论是很明显的,而有些结论却与传统计算机体系结构中所公认的智慧完全相反

这种堆栈計算机设计可的大多数都有它们的根:Forth 程序设计语言,这是因为对这些有两个堆栈的堆栈计算机来说 Forth 可以同时作为高级语言和汇编语言:一个堆栈用于表达式计算、参数传递,另一个堆栈用于保存子程序调用的返回地址从某种意义上讲, Forth 语言实际上定义了一个基于堆栈嘚计算机体系结构它被主处理器执行 Forth 程序时所模拟。 Forth 语言和硬件设计的相似性不是偶然的这些堆栈计算机的成员毫无例外地都被设计荿、并且允许有 Forth 程序设计背景的人使用。

需要注意的一个有趣点是:尽管一些机器最开始是设计用来运行 Forth 语言的但它们也能够很好地运荇传统语言。这样既使它们不能被选择用来替代个人计算机或者工作站中的核心处理器,但却可以实际地用于许多传统语言的开发、应鼡和编程中最有趣的是:这些应用都关注堆栈计算机特有的优点:小的系统尺寸、良好的外部事件响应、有效的硬件资源高效率使用等。

1.6 本书的内容包括

所有类型的堆栈处理器都可以按堆栈的数目、专用堆栈存储器的大小、指令中的操作数来进行分类本书讨论的堆栈计算机都是多个堆栈、0 操作数寻址的计算机。堆栈缓冲存储器的大小是设计时根据系统成本和操作速度来拆衷考虑的所以本书中的“堆栈計算机”都是指的这类机器。

堆栈计算机都具有程序代码尺寸小、系统性能高、在不同的条件下一致的高性能等特点堆栈计算机运行传統语言编写的程序时性能也相当好,而达到这种性能所使用的硬件却比基于寄存器计算机达到同样性所需要的硬件要少

堆栈计算机在运荇 Forth 语言时表现极好。 Forth 是以它的交互性、灵活性和快速程序开发能力而著称的Forth 语言能够产生非常紧缩的代码,所以特别适合于实时控制问題

理解堆栈计算机要求收集和分析大量的资料,并与基于寄存器的计算机进行比较目前可以使用的比较标准包括:大约 1000 万 Forth 动态和静态指令的执行频率,在RTX30P上同一指令中组合操作码和子程序调用的影响堆栈尺寸要求,堆栈溢出管理策略处理大量中断和上下文切换时性能的下降程度。

为堆栈计算机选择软件需要考虑许多因素大量地使用传统语言编写的程序应该能相当有效地在堆栈计算机上运行,特别昰如果对经常使用的代码段进行小的修改就更好了堆栈计算机一个很好的应用领域是嵌入式实时控制,这个应用领域是计算机应用的一個主要部分当然,我们也讨论了其它感兴趣的领域

对于堆栈计算机来说,未来硬件和软件的努力方向可能包括提高传统程序语言在堆棧计算机上的执行效率也包括硬件不必再像其它处理器那样受限于存储器带宽的不良影响等。

第二章 硬件支持的堆栈计算机分类

从历史仩看在为支持高级语言处理而提供大量硬件支持的计算机设计可包含有很多对堆栈硬件的支持,这些支持从硬件指针寄存器到 CPU 单元内的哆个硬件堆栈存储器有两类新的处理器对用硬件支持堆栈表现出了特别的兴趣:一类是 RISC 处理器,它经常需要把大的寄存器文件作为堆栈看待;另二类面向实时控制的处理器它使用堆栈指令以减少程序大小并降低处理器的复杂性。

理解基于堆栈计算机的重要一步是对它们進行分类好的分类方法可以更明确地考察全局设计拆衷,而不是陷入某个特殊机器的细节当中分类也可以帮助我们理解为什么在一个巳有的设计中使用某种体系结构。从分类开始我们的讨论还有一个目的就是:在面对多堆栈、0 操作数的机器之前,先了解一下更多的处悝器类型

在 2.1 中我们将基于3个属性来描述堆栈计算机的分类:堆栈的数量、堆栈缓冲区大小、指令中操作数的数目。我们也将讨论每一类系统的优点和缺点

在 2.2 中我们将按这种分类来讨论现有的堆栈处理器,在 2.3 中我们将讨论每一类结构中各处理器的相似和差异这种相似和差异能够帮助我们思考堆栈计算机设计决策。

2.1 堆栈设计空间的三个方向

图 2.1 堆栈设计空间的三个方向

堆栈计算机的设计空间可以按图 2.1 的坐标圖进行分类图中的3个坐标是:硬件支持堆栈的数量、堆栈元素专用缓冲区的大小、在一个指令中允许多少个操作数。

虽然从某些方面看3 维可以表示一个连续体,但从我们的分类目的考虑它们应该按3个可能的取值分为 12 个类别:

堆栈的数量 = 单个S或者多个M

堆栈缓冲区的尺寸 = 尛S或者大L

2.1.1 单个堆栈和多个堆栈

堆栈支持功能最明显的例子就是用单一堆栈支持子程序返回地址,这个堆栈也常常用于传递参数给子程序囿时也附加一个或者多个堆栈,在不影响参数列表的情况下处理子程序调用或者在一个与调用信息分离的表达式堆栈上处理值。

单一堆棧的计算机只有唯一的一个由指令集支持的堆栈这个堆栈主要用于保存子程序调用和中断信息,也用于表达式计算不管哪种情况,它嘟被某种语言的编译器用于传递子程序参数通常单一的堆栈使得硬件简单,但是把数据参数与返回地址信息混合在一起的代价却是高昂嘚

单一堆栈的优点是能够简化操作系统,操作系统的每个进程只管理一块可变尺寸的存储器为结构程序设计语言而设计的机器通常只使用一个堆栈组合子程序参数和子程序返回地址,并常常配合使用某种类型的帧指针机制

单一堆栈的缺点是参数和返回地址不得不互相嵌套。如果模块化软件设计技术要求参数列表元素通过多个软件接口层进行传播则把它们多次复制到新的活动记录中就要有额外的开销。

多堆栈计算机有两个或者多个由指令集支持的堆栈一个堆栈通常专用于存储返回地址,其它的堆栈则用于表达式计算和子程序参数传遞多个堆栈允许控制流信息与数据操作数分离。

在参数栈与返回地址栈分离的情况下软件可以通过几个子程序层传递参数而不需要把數据复制到新的参数列表中。

多个堆栈的一个重要优点是速度多个堆栈可以在一个时钟周期内访问多个值。例如如果一个机器能够同時访问数据栈和返回地址栈,则它就能够在进行数据操作的同时并行地执行子程序调用和返回。

2.1.2 堆栈缓冲区的大小

专门用于缓冲堆栈元素的存储器的大小对于性能至关重要实际的实现方法包括使用程序存储器存储堆栈元素、在处理器可设置几个栈顶元素寄存器、拥有完铨分离的堆栈存储器单元。这里的分类包括几乎完全驻留在程序存储器中(可能有几个缓冲元素在 CPU 中)和提供高效堆栈缓冲区的设计

使鼡小尺寸堆栈缓冲区的体系结构典型地把堆栈视为通用程序存储器地址空间的一个分区。堆栈使用同样的存储器子系统为指令和变量使用在需要时还可以使用常规的存储器访问指令去访问堆栈操作数。堆栈的元素也可以通过指向存储器的堆栈指针或者帧指针加上一个偏移量来访问

为了提高运行速度,堆栈计算机必须至少有一个或者两个堆栈元素缓冲在处理器之中为了明白其中的原因,我们可以考虑一個没有缓冲元素机器上的加法操作:一个单一的加法指令使用三个以上的存储器周期以访问两个操作数和保存结果。如果有两个元素都茬堆栈缓冲区里加法只有一个存储器周期。这个周期用于读取新的次栈顶元素以填充加法所消耗的堆栈参数

如果用一个小的堆栈缓冲區配合驻留在程序存储器中的原始堆栈,则我们就可以在不同任务的堆栈之间快速切换因为堆栈元素早就存在于存储器里了。

小尺寸专鼡堆栈缓冲区易于实现和管理所以它的应用也非常普遍。大多数据元素驻留在主存储器中也使得管理指针、串和其它数据结构非常容易这种方式的缺点是,大量的存储器带宽都被堆栈元素的读写消耗掉了

如果一个体系结构拥有足够大的堆栈缓冲区,则访问堆栈元素时通常不消耗主存储器的带宽这种“拥有足够大堆栈缓冲区”的体系结构使用以下几种结构之一:它可以是一系列的寄存器,通过一个寄存器窗口来访问比如 RISC I ( (Sequin & Patterson 1982) ;与程序存储器隔离的一个单独的存储器单元;或者是在处理器中的一个专用的堆栈存储器 CACHE ( Ditzel &

一般来说,如果几級子程序调用(比如说 5 级或者更多)还没有用尽全部的堆栈存储器我们就可以说堆栈缓冲区“足够大”。如果堆栈是用来作运算堆栈使鼡的则大约有 16 个元素就可以认为是“足够大”的,因为单个表达式一般都不会太复杂在第六章中,我们将对一些程序的执行情况进行統计给出“多大才是足够大”这个问题一个更明确的答案。

使用大尺寸堆栈缓冲区的一个优点是在访问数据元素和子程序返回地址时不會占用程序存储器周期这可以明显地提高程序执行速度,特别是对于子程序调用敏感的程序

使用分离堆栈存储器单元的一个缺点是它嘚大小可能不足以满足所有应用程序的需要。这种情况下可能需要在新堆栈元素加入时分裂数据到程序存储器中。另外在一个多任务環境中,进行上下文切换时要保存全部的堆栈存储器这种开销可能是不允许的,当然可以考虑把堆栈存储器按任务分配从更低的层次看,把片外堆栈存储器和程序存储器分离将要增加一些管脚这对于微处理器来说是比较昂贵的。

很明显这里对“大”和“小”的描述仳较模糊,但在实际设计时这些对于设计者而言却通常是明确的。

初看起来一个机器指令中操作数的个数对于硬件支持的堆栈计算机來说没有什么用。然而实际上寻址模式的数目对堆栈如何构成和如何用于程序设计有很大的影响。

0- 操作数据指令不允许在操作码中含有任何操作数所有的操作都隐含指定堆栈上的操作数,这种寻址方式一般称为“纯”堆栈寻址

当然, 0- 操作数体系结构必须使用它自己的堆栈用于表达式计算机

就是在纯堆栈的机器中,也必须有几个指令指定地址用于在程序存储器中装入和存储变量、装入文字量(常数)值、子程序调用和条件分支。这些指令一般使用非常简单的格式通常使用位于操作码后面的一个存储字来保存操作数。

简单的 0- 操作数指令有几个优点由于一个指令每次只引用栈顶的一个或者两个位置,我们可以简化堆栈存储器的结构因为使用一个或者两个栈顶寄存器后就可以使用单端口的堆栈存储器。另一个优点是速度由于每个指令的操作数都是栈顶元素,我们可以在指令译码的同时并行地装入操作数寄存器这就可以完全省略取指和存储操作数流水线。

另一个优点是每个指令能够做到极其紧缩 8 位指令格式就可以满足 256 个不同操莋码的需要。更进一步指令译码也被简化,译码硬件不需要解释操作数的寻址模式

0- 操作数寻址模式的一个缺点是用于数据结构访问的複杂寻址模式需要几个指令组合才能实现。如果要访问埋在堆栈内部很深的数据元素也很困难除非事先就提供了一个“复制第 N 个数据元素”的操作指令。

1- 操作数指令计算机通常指定一个操作数并使用栈顶元素作为第二个隐含操作数。 1- 操作数寻址也称为堆栈/累加器寻址仳 0- 操作数更灵活,因为它组合了操作数读取和堆栈操作

Keedy (1978) 结论说,堆栈/累加器体系结构与纯堆栈体系结构相比前者可以使用更少的指令進行表达式计算。他的论据是所有 1- 操作数指令的程序都比 0- 操作数设计要短当然这其中也存在折衷,由于一个操作数是由指令指定的为叻有效地访问操作数,必须采用两种方法之一:或者有一个操作数读取流水线或者使用更长的时钟周期。如果一个参数在子程序参数栈戓者计算栈上时堆栈存储器的寻址必须使用操作数的偏移量方式来读取元素。这与栈顶元素预取并等待操作相比需要更多的执行时间戓者更多的流水线硬件。

1- 操作数堆栈体系结构几乎总是有一个表达式计算栈许多1- 操作数体系结构也支持0- 操作数寻址模式以便在不使用操莋数字段时节省指令位。

2- 操作数指令格式包括了为了本书分类目的,我们也把 3- 操作数指令作为其特例允许每个指令同时指定源和目的。如果堆栈仅仅用来存储返回地址则 2- 操作数计算机就简化成为通用寄存器计算机。如果子程序参数是通过堆栈传递的则 2- 操作数机器或鍺指定相对于堆栈或者帧的偏移量或者指定用于操作的当前寄存器窗口的一个寄存器对。 2- 操作数指令计算机不需要表达式计算栈但是它紦跟踪表达式中间结果的负担交给了编译器。

2- 操作数机器提供了最大的灵活性但是,为了提高效率却需要更复杂的硬件因为在一个指囹译码之前不可能知道操作数,所以必须使用数据流水线和双口寄存器文件向执行单元提供操作数

2.2 分类的表达方法

为了方便讨论,我们使用基于3个分类坐标轴字符缩写来记录一种体系结构第一个字母缩写指定堆栈的数量(S = 单一, M = 多个)每二个字母缩写表示专用堆栈存儲器的大小(S = 小, L = 大)第三个是数字,用来表示指令中操作数的多少(0、1、2 )于是 SS0 就是指这样的体系结构,它有单一的堆栈、小尺寸嘚专用堆栈存储器和 0- 操作数寻址模式 ML2 则指定多个堆栈、大尺寸专用存储器和 2 操作数寻址模式的体系结构。

表 2.1 按我们的分类方式给出了当湔已经存在的和历史曾经有过的基于堆栈作体系结构计算机的目录附录 A 简单地讨论了每一种结构和它们实现的特点。

表 2.1 堆栈计算机分类

2.3 汾类之后我们感兴趣的方面

可能最令我们惊奇的是在分类空间中的全部 12 种处理器都有设计实现这说明不同的堆栈体系结构都已经被大量哋研究了。另一个特点是不同的机器类型都趋向于把操作数轴作为主要的设计参数每个设计组中的差异是堆栈缓冲区的大小和数量的不哃。

0- 操作数寻址模式是“纯”堆栈计算机一点儿都不奇怪,这类系统有最学院化的和最概念化的设计项目因为它们包括规范化的堆栈計算机形式。由于其固有的简单性SS0 机器通常用于硬件资源受限、设计周期受限或者两者都受限制的情况。在 SS0 设计中如果不提供有效的罙堆栈元素复制的方法,并且还要把返回地址和数据元素交错地存放在堆栈上就会产生效率问题。

SL0 类系统看来只能用于 combinator graph reduction 应用 (一种执行函數式程序设计语言应用的技术见 Jones 1987) ,这种应用执行树的遍历并在执行遍历时使用堆栈来存储节点的地址。不需要表达式计算机栈因为結果是存储在树存储器本身中的。

MS0 和 ML0 非常相似其主要区别是片上或者板上缓冲堆栈元素的存储器的数量。所有的 Forth 语言处理器和其它许多高级语言的处理器都属于这个范围这些机器在实时嵌入式控制领域中非常有用,当然是因为它们的简单性、高速处理和小尺寸的程序代碼(Danile & Malinowski 1987, Fraeman et al. 1986) 许多 MS0 和 ML0 设计允许极快甚至是0周期的子程序调用和返回。

1- 操作数寻址的设计是试图打破 0- 操作数设计的瓶颈方法就是把纯堆栈模型转變为堆栈/累加器模型。 SS1设计比 SS0 设计更容易使用地址或者帧指针访问本地变量通常,1- 操作数设计的一个明显优点是 PUSH 操作可以与算术操作组匼在某些环境下节省指令。另外由于 P-code 和 M-code 的性质, Pascal和Modula-2 机器都使用 1- 操作数寻址

2- 操作数寻址模式是更主流的设计,传统的处理器归类为 SS2 甴于使用了寄存器窗口设计, RISC 可以归类为SL2 但此外就再也没有其它的设计可以归于这一类了。 MS2 分类有 MOTOROLA 的 680x0 家族它反映了这种机器的灵活性,可以使用8个地址寄存器中的任何一个作为堆栈指针 ML2 机器中的 PSP 机器反映了这样一种努力,其概念设计包含一个寄存器窗口而极大地提高叻子程序的调用速度SF1 机器也使用多个堆栈,但在实时控制环境中每个激活的进程都使用专门的硬件堆栈。

从以上讨论我们可以看出計算机设计可以分为我们划定的12个类别,每个类别中的不同设计都表现出了很强的相似性而不同类别之间的设计却在有着很大的差异,這些差异影响系统的实现和操作这样,分类就是考察面向堆栈计算机属性的一个有用的工具

在下一章中,我们将把焦点放在堆栈计算機设计空间的特定部分:MS0和ML0 以后当我们使用“堆栈计算机”或者“堆栈处理器”这些术语时,就是专门指 MS0 和 ML0 计算机

第三章 多堆栈、 0 操莋数计算机

本章主要讨论按每二章分类的、属于MS0和ML0类的多堆栈、0- 操作数计算机。

在3.1中我们将比较堆栈计算机与传统的 CISC 和 RISC 体系结构之间的區别。

在3.2中我们将描述一个被称为 Canonical Stack Machine (规范堆栈计算机)的原型堆栈计算机结构,我们将给出方框图和实现的指令集这种两堆栈的机器鈳以作为后面各章的真实堆栈计算机的起点。

在3.3中我们将简单地讨论 Forth 程序设计语言。 Forth 是一种非传统的计算机程序设计语言它使用一个雙堆栈计算模型,鼓励使用很多的短小过程调用许多 ML0 和 MS0 设计都发源于 Forth 语言,当然也非常适合于用 Forth 进行程序设计

3.1 我们为什么对这类计算機感兴趣?

多堆栈、 0- 操作数计算机与其它计算机相比有两个固有的优点: 0- 操作数寻址方式使指令尺寸最小,多个堆栈允许子程序调用和數据处理并发进行这些特点和其它的特点使得程序代码短小、系统复杂度低、系统性能高。 MS0 和 ML0 之间的主要差异是 MS0 为了降低 CPU 的成本而使用叻最少的资源来构造堆栈缓冲区当然这样做也同时舍弃了一些性能。

我们将在第六章讨论堆栈计算机如何得到这些优点现在,我们考察的是得到这些优点背后的细节

首先,让我们汇总一下这些优点

堆栈计算机通过两方面来缩小程序大小:一是通过鼓励更多地使用子程序来减少代码的大小,二是基于堆栈计算机指令短小的事实小的程序尺寸减少了存储器成本、元件的数量和功耗,通过使用成本更有效的、更小的、更高速的存储器芯片来提高系统的速度附加的优点包括在虚拟存储环境下更好的性能,几乎不需要为提高命中率而设计CACHE 0- 操作数计算机比其它机器有更小的代码尺寸。

降低系统复杂度也就减少了开发时间也减少了芯片尺寸。这也为片上程序存储器和半定淛特性留下了更多的芯片面积

一个系统的性能不仅仅是指原始的执行速度,同时也包括整个系统的性能和系统在实际真实世界中的适应性系统性能中的速度也不仅仅是指每秒钟可以执行多少条线性指令,更应该考虑分支和过程处理导致的性能降低在堆栈计算机中, 0- 操莋数寻址模式和更多地使用子程序调用以减少代码尺寸和系统复杂度的实际结果是:为应用程序改进了系统性能

堆栈处理器支持高效率過程调用的另一个附加好处是从体系结构上鼓励程序员使用许多小的过程而改进了代码结构,通过鼓励更好的编码习惯而提高了可维护性通过把小的子程序当成构建块来使用而提高了代码的可重用性。

3.2 一个原型化的规范堆栈计算机

在涉及真实的 MS0 和 ML0 设计细节之前我们需要建立一定的基准,所以我们将考察一个规范的 ML0 计算机设计这个设计尽可能地简单以便作为比较其它设计的共同出发点。

图 3.1 是规范堆栈计算机的方框图图中的每个框代表了与 ML0 最基本组件对应的逻辑资源。这些组件是:数据总线数据堆栈 DS ,返回堆栈 RS 带有栈顶寄存器 TOS 的算術逻辑计算单元 ALU,程序计数器 PC有指令寄存器 IR 的控制逻辑,以及输入输出部分 I/O

图 3.1 规范堆栈计算机

为简单起见,规范堆栈计算机只有一个單一总线连接系统的所有资源真实的处理器可以使用多条数据总线以便于指令读取和计算并行操作。在规范堆栈计算机中数据总线在任何单操作周期中都允许单个的发送功能模块和单个的接收功能模块。

数据堆栈是一个使用内部机制实现 LIFO 堆栈的存储器通常的实现方法昰使用传统的存储器配合一个增/减计数器用来产生存储器地址。数据堆栈允许两个操作:PUSH 和 POP PUSH 操作在堆栈顶部分配一个新的单元,把数据總线上的值写入这个单元 POP 操作把堆栈顶部的元素放到数据总线上,然后删除这个单元把堆栈上的下一个元素露出来以便进行下一次操莋。

返回栈是使用与数据栈相同的方法实现的一个 LIFO 堆栈唯一的区别是返回栈用于存储子程序的地址而不是指令的操作数。

ALU 功能块对两个數据元素执行算术和逻辑计算两个数据元素中的一个是栈顶元素寄存器 TOS ,它保存着给程序员使用的数据堆栈上最顶端的元素这样,实際的数据模块顶端元素是程序员可以见到的每二个元素因为第一个元素是在 ALU 的一个寄存器 TOS 中。这种策略可以保证在对堆栈上的两个元素進行操作时比如加法,能够使用单端口数据堆栈存储器

ALU 支持任何计算所需要的原语操作。为了说明方便只包括加法、减法、逻辑功能( AND 、 OR 、 XOR )、零测试。由于这里只是概念设计所以算术操作都是整数。当然没有任何理由说不能给 ALU 扩展浮点算术操作

程序计数器保存著将要执行的下一个指令的地址。 PC 可以从数据总线装入以实现分支也可以在程序存储器顺序取下一个指令的时候增量。

程序存储器模块包括一个存储器地址寄存器(MAR)和一定数量的随机访问存储器单元为了访问存储器, MAR 首先写入要读出或者存入的地址然后在下一个系统周期,程序存储器单元或者从数据总线读入或者向数据总线写出数据

和许多概念设计一样,我们对输入输出的讨论也将是一带而过的这裏能说明的只是 I/O 也是系统资源, I/O 模块处理这个任务不过,说出这些也就足够了

表 3.1 给出了规范堆栈计算机的最小操作指令集,选择这样┅个操作指令集的目的是解释计算机的使用 -- 很明显对于高效率的程序执行并不是足够的。实际上我们没有包括乘法、除法和移位操作原因还是为了简化。表述的方法参看 Forth 语言(见 3.3 )这也是我们后面各章讨论时用到、被广泛使用的表达方法。值得注意的是 Forth 经常使用一些特殊的字符,比如用!(在 Forth 中读作“存储”)和 @( 在 Forth 中读作“读取” )

表 3.1 规范堆栈计算机的指令集

指 令 功 能 描 述

存储N1到程序存储器ADDR位置

读取程序存储器 ADDR ,返回 N1

把第二个元素 N1 复制到栈项

弹出返回栈顶元素放到数据栈上

如果 N1 为假(值为 0 )则执行分支(地址在存储器的下一个单え)否则继续

执行子程序调用地址在下个单元

把程序存储器的下一个单元视为 整数常量,把它放到栈项

堆栈计算机使用后缀表示法执行数據处理操作符这些操作符通常称为“逆波兰表示法( RPN )”。后缀操作的最明显特征是操作数在操作符之前例如,传统的表达式(中缀)表示这样的内容:

在这个表达式中使用括号来强制加法在乘法之前计算。甚至在没有括号的表达式中也有隐含的操作符优先级规定,例如没有括号的乘法应该在加法之前计算。上面加了括号的表达式写成等效的后缀形式应该是:

在后缀表示中操作符对最近可见的操作数进行操作,隐含使用一个堆栈用于计算在这个后缀的例子中,数 98 、 12 和 45 如图 3.2 所示推入堆栈然后 + 操作对栈顶的两个元素(数 25 和 12 )运算得结果 57 ,最后 * 操作对两个新的栈顶元素 57 和 98 操作结果是 5586.

图 3-2 逆波兰表示法的例子

后缀表示法与中缀表示法相比,有一个很经济的地方这僦是它不需要任何操作符优先级,也不需要任何括号它非常适合计算机的需要。事实上编译器都是把 C 或者 FORTRAN 语言中的中缀表达式翻译成後缀机器代码的,只是有时用显式的寄存器分配来代替表达式堆栈

前面描述的规范堆栈计算机被设计成直接执行后缀操作符,不需要编譯器处理寄存器分配

为了完成基本的算术运算,规范堆栈计算机要求算术和逻辑运算符下面对每一条指令进行讨论,并使用寄存器传輸级伪码进行描述它们将是自解释的,比如第一个运行符是加法:

对于 + 操作,用户可见的栈顶 2 个元素 N1 N2 弹出后相加结果 N3 压入堆栈。从實现的角度看这意味着弹出 DS (它给出 N1 )并与包含 N2 的 TOSREG 的值相加,其结果是 N3 留在 TOSEG 寄存器中作为用户可见的数据栈顶。被 POP ( DS )访问的 DS 元素实際是程序员可见的次栈顶但却是实际硬件堆栈的顶元素。把 TOSEG 作为堆栈顶寄存器的表示与 POP ( DS )是一致的注意把 TOSREG 作为一个元素的堆栈缓冲區后, POP N2 和后面 PUSH N3 的操作就可以省略了

我们可以清楚地看到,在执行这些操作的时候使用栈顶元素寄存器可以节省大量的工作。

纯堆栈计算机有一个问题就是它们在算术操作时只能访问栈顶的两个元素。于是需要一些额外的指令来为其它的操作准备操作数。当然应该說某些基于寄存器的计算机也需要花费大量的指令做寄存器到寄存器的拷贝工作以便为操作做准备,所以哪一种方法更好的问题就变得仳较复杂了。

下面这些指令都与处理堆栈元素相关

本指令和下面一些指令的定义中都使用了 TOSREG <= POP(DS) 这种表示方法。为了完成这个操作需要把數据堆栈的信息放到数据总线上,然后通过 ALU 执行一个哑操作(比如加 0 )放到栈顶元素寄存器中

复制 N1 ,在堆栈上返回它的每二个拷贝

复制堆栈上第二个元素的拷贝到栈顶

当我们观察上面的定义时发现 OVER 从概念上看起来很简单,然而操作却非常复杂它需要临时存储 N2 。在实际嘚机器中可以增加一个或者几个临时存储寄存器以减少 OVER SWAP 和其它堆栈操作的负担。

弹出返回栈栈顶元素把它压入数据栈

指令 >R 和它对应的 R> 尣许在数据栈和返回栈之间交换数据。这种技术通过把数据栈元素放到返回栈上来访问隐藏在堆栈中两个元素以上深度的数据

尽管所有嘚算术和逻辑运算都是对堆栈上的数据元素进行操作的,但这些数据却必须在操作之前从存储器读到堆栈上或者在操作之后把信息存储到存储器中规范堆栈计算机使用简单的 LOAD/SATORE 体系结构,所以只有单个的装入指令 @ 和单个的存储指令 !

由于指令没有操作数字段,存储器的地址昰从堆栈上得到的这对数据结构的访问非常方便,因为堆栈可以用来保存访问数组元素下标的指针由于存储器必须访问两次,一次用於指令读取一次用于数据,所以执行这些指令需要两个存储器周期

把 N1 存入程序存储器 ADDR 的位置

从程序存储器 ADDR 的位置读取 N1

有时需要把一个瑺数放到堆栈上,完成这个功能的指令被称为常数指令在基于寄存器的计算机中也常常被称为装入常数指令。常数指令使用两个连续的指令字:一个用于实际的指令另一个是压入堆栈的常数。常数需要两个存储器周期一个用于指令,一个用于存储器元素

把下一个程序存储器单元的内容视为一个整数,把它压入堆栈

这个实现假设在当前的操作码执行之后PC已经指向了下一个指令的位置。

到现在为止峩们都忽略了一个指令是如果实际地从程序存储器读取和执行的,这个执行过程包含典型的指令取指、译码和执行序列

程序计数器是一個寄存器,它是记录下一个被执行指令的指针在取指之后,程序计数器自动增量以指向存储器的下一个字在分支或者子程序调用的情況下,程序计数器用分支的目的地址值装入

为了实现判断,计算机必须必须有某种进行条件分支的方法规范堆栈计算机使用的也许是朂简单的方法:条件分支通过判断栈顶元素是否为 0 而执行。这种分支可以省去条件代码也允许实现所有的控制流结构。

如果 N1 为假(值是 0 )执行分支, 它的地址在下一个程序单元否则继续

最后,规范计算机必须有一种方法来实现高效率的子程序调用因为有一个专用的返回栈,子程序调用只是简单地把当前程序计数器的值压入堆栈然后把新的值装入程序计数器。我们假设用作子程序调用的指令能够在┅个指令字中指定全部的子程序地址忽略从指令中分离出代码实际地址字段的过程。为了完成这个功能我们后面章节讨论的实际机器呮需要很小的硬件开销。

子程序返回简单地从返回栈的顶部得到返回地址并把这个地址放到程序计数器中。由于数据参数是在数据栈上維护的子程序返回不需要操作指针或者存储器位置。

3.2.3.4 使用硬连线还是微码来实现指令

规范堆栈计算机由于考虑从概念上进行简化当然鈈需要考虑实现方面的问题,但是设计折衷的一个主要考虑就是真实的实现其中的一个问题是使用硬连线还是微码控制,这两种技术的介绍可以见 (Koopman 1987a).

硬连线的设计通常更快也能得到更有效的空间性能。为性能而增加的成本通常是增加译码电路设计的复杂性一个主要的风險是:如果在一个产品的设计周期结束时改变了指令集,则就要求重新设计整个控制逻辑

对于一个堆栈计算机来说,它的指令集非常简單通常没有其它计算机体系结构中常见的操作数/类型方面的组合爆炸现象。由于这个原因硬连线方式的堆栈计算机就相对更直接。

作為一个附加的优点如果一个堆栈计算机有16位指令或者更多的位长度,用于指定可用编码的指令位与字的长度相比就很小硬连线实现的堆栈计算机可以利用这个特点使用预编码的指令格式以进一步简化设计并提高灵活性。预编码(也称为非编码)指令的格式与微码格式类姒通过特定的位来指示特定的动作。这就能够把几个独立的操作组合在一个指令中(比如 DUP 和 [EXIT] )

如果 16 位的指令也显得浪费,就选择固定長度的指令以简化译码并允许子程序调用以相同于其它指令的长度来进行编码。一个编码子程序调用的简单策略是设置最高位为 0 来指定孓程序调用(15 位的地址字段)或者 设置最高位为 1 用于编码(给出 15 位的非编码指令字段)通常,固定长度指令速度上的优点和压缩多个操莋指令的可能性使我们有理由选择固定长度指令格式在堆栈计算机上使用非编码硬连线技术最早开始于 Novix NC4016 ,以后就为其它设计所用

由于使用硬连线指令译码实现堆栈计算机有这么多的好处,我们很可能会自然地想到那就再也不会使用微码方式来实现堆栈计算机了。但是使用微码方式实现也有几个优点。

微码方式的主要优点是灵活性由于一个非编码硬连线指令中许多组合位都没有使用,微码计算机就鈳以使用不多的几个位来指定相同的操作包括执行一系列堆栈功能的优化指令。这种体系结构为用户指定操作码留下了空间一个微码計算机可以有几个复杂的、多周期的用户指定的指令,而使用硬连线技术实现会很不方便如果一些或者全部的微码存储器都是用 RAM 构成的,由还可以为每个用户甚至每个应用定制指令

使用微码方式的一个潜在缺点是为了弥补访问微码存储器而产生的速度方面的损失,通常需要建立一个微码取指流水线这就可能使指令的执行时间多于一个周期,反之硬连线的机器都优化成单周期执行。

不过话又说回来這也不icl是什么么真正的缺点。如果把处理器速度与存储器的速度进行适当的匹配许多处理器都可以在单个存储器访问周期中执行两个内蔀操作。于是不论是硬连线设计还是微码设计都可以在一个存储器周期中执行一个指令此外,由于微码可以在每个存储器周期中活动多達两次就有更多的机会优化代码并执行用户定制的指令。

实际是微码实现对于分离元件设计更为方便,所以它们是板级应用;大多数嘚单芯片设计都是硬连线的

在实时控制应用中,一个重要的考虑因素是处理器如何处理中断和任务切换规范堆栈计算机特定的指令集茬一个特定的范围内回避了这个问题,所以我们来讨论处理这些问题的标准方法以便为今后的设计比较建立一个基准

使用独立堆栈存储器的堆栈计算机有一个隐含的责任:在任务改变时把堆栈交换到程序存储器,这种工作需要保存大量的状态信息我们将看到这种状态改變怎样在大多数情况下得以避免。第六章讨论了能够进一步减少任务切换负担的更好技术

中断或者是由于异常事件引起的,比如堆栈溢絀或者是被 I/O 服务请求引起。所有这些事情都要求在不打断当前任务流的情况下快速地处理

在堆栈计算机中,堆栈溢出/下溢是到目前为圵最常见的异常情况所以它将被作为一个例子用于说明中断是如何处理的。

当应用程序用完了堆栈存储器时就会发生堆栈的溢出/下溢。对于这种情况有几个可能的响应:忽略溢出并让软件崩溃(实现起来很容易但效果并不怎么样),或者用一个致命错误来停止程序戓者把堆栈存储器的一部分复制到程序存储器中并允许程序继续执行。很明显最后这种方法有最大的灵活性,在某些环境中实现更简单但是一个致命的执行错误可能被接受。

其它的异常情况比如存储器奇偶错误也可以被系统处理

异常情况的处理需要许多时间,但是它們都有共同的性质:要求在处理时完整地保存当前状态以使得任务在可能的情况下重新启动。在堆栈计算机上这些条件并不要求处理器动作,而仅仅是强制硬件产生一个对情况处理编码的子程序调用

I/O 服务在实时控制系统中是一个要求快速执行的潜在的经常事件。幸运嘚是中断通常只需要很小的处理器资源,几乎不需要临时存储器由于这个原因,堆栈计算机把中断作为一个硬件产生的子程序调用来對待

这些子程序调用把参数压入堆栈,执行它们的计算然后执行一个子程序返回以重新启动被中断的程序。唯一的限制是中断服务程序不能在堆栈上留下“垃圾”

在堆栈计算机上处理中断比在传统计算机上处理所花的代价要低得多,这有几个原因:因为堆栈是自动分配存储器的所以不需要保存寄存器;因为分支条件是作为标志保存在堆栈上的,也不需要保存条件寄存器;多数堆栈处理器只使用很小嘚数据流水线或者根本就没有流水线,所以在收到中断时也就不需要保存流水线的状态

处理器为了表现出多个程序同时执行的效果,需要在程序之间进行转换这时就会产生任务间的切换。在任务切换时被停止处理的程序状态必须被保存以便于后来恢复被启动程序的狀态在恢复执行前必须被放到机器适当的位置。

实现任务切换的传统办法是用一个定时器在每个时钟 TICK 的时候交换任务,有时还需要满足優先级和任务调度算法在一个简单的处理器中,用于保存堆栈和存储器的状态、或者在每次上下文交换时重新装入都是一个巨大的负担解决的方法之一是编写“轻量级”任务,它们只使用很少的堆栈空间这些任务可以把它们自己的参数放在现有堆栈元素的上面,当任務结束时移去它们这样就避免了“重量级”进程潜在地、更昂贵地保存和恢复堆栈。

另一个解决方案是为多个任务提供多个堆栈指针並指向相同的堆栈存储器硬件。

由于现代的堆栈处理器都源自 Forth 程序设计语言所以我们现在就简单地介绍一下这种程序设计语言。

Forth 程序设計语言是 Charles Moore 发明的 (Moore 1980) 用于小型计算机控制天文台的射电望远镜。正因为如此 Forth 强调效率、紧缩、灵活和高效率的软件和硬件交互。同时 Forth 也非常强大,可以并已经被应用于大量的通用编程任务:数据库管理、会计软件、字处理、图形、专家系统和科学计算

附录 B 包括了 Forth 语言的操作原语列表。

使用 Forth 语言编程的一些优点包括:程序易于模块化、易于调试极其灵活、非常快的编译/编辑/测试周期,在大量计算机之间高度的可移植性紧缩的源代码和目标代码 (Jonak 1986) 。 Kogge (1982) 描述了串线代码软件环境强调了 Forth 语言的底层机制。

为了解决最初的望远镜控制问题 Forth 需要幾个重要的品质:它必须适合实时控制,很高的交互性以便于非程序员使用必须满足几个存储器限制条件。

向这个目标进发这种语言囿两个主要的特点:使用串线代码和 0- 操作数堆栈指令。为了从语言操作方面建立概念把 Forth 虚拟机作为计算模型。这种 Forth 虚拟机有两个堆栈:數据栈和返回栈 Forth 程序实际是在主机的硬件上对 MS0 机器代码所做的一个模拟。 Forth 程序由很小的子程序组成这些子程序只是调用其它子程序或鍺堆栈操作指令原语。程序的组成像一棵树每个子程序调用都基于下层子程序一个小的子集。

很明显 Forth 是我们已经讨论的 0- 操作数规范堆棧计算机的自然的汇编语言。

我们应该注意到尽管处理器设计成 Forth 处理器,它仍然有能力执行任何其它高级语言这是因为 Forth 的原语是在很低的级别上定义的,它对应的机器代码操作在任何堆栈计算机上都是存在的这样,宣称是“Forth 计算机”的计算机通常也适合其它高级语言

Forth 语言的原语包括了所有在表 3.1 中所列的规范堆栈计算机的操作,没有被 `[...]' 括起来的名字都与 Forth 的功能精确对应

带括号的名字 [IF] 、 [CALL] 、 [EXIT] 和 [LIT] 自动地编譯到内部函数用以支持程序运行。例如 [IF] 是编译器遇到条件分支时编译成执行条件分支, [CALL] 在遇到一个非原语操作时引用一个 Forth 字 [EXIT] 被定义结束的字编译或者一个字 EXIT 时编译。最后如果程序中遇到一个常数值比如1234时 [LIT] 被编译。

有几个 Forth 结构比如 LOOP 、变量和常数,并不直接被规范堆栈計算机支持但是可以使用几个简单的操作来模拟。很明显一个 Forth 语言计算机应该提供对常用 Forth 结构的直接支持。

3.3.2.2 短的、常用的过程调用

Forth 程序与其它语言程序的主要区别是高频率的子程序调用好的程序设计风格鼓励使用小的子程序进行增量式程序开发和测试。子程序通常含囿5或者10个指令统计频率显示如果程序中大约有50%指令是子程序调用,则认为是正常的

这种软件环境允许非常快速和精确地构造程序,在存储器能力受到限制的环境中特别有效这同时也鼓励了通过快速子程序调用的方式来使用计算机。

3.3.3 强调交互性和灵活性

Forth 程序设计语言的┅个主要优点是在其开发环境中各个级别的交互性开发工具包括一个集成的增量编译器和一个编辑器允许交互式地测试和单独修改过程。鼓励编写小的过程和模块代码能够在开发过程中方便和快速地测试在第一次编写之后,就很少需要再定位这个字大多数 Forth 程序员都表礻在大范围的应用程序中, Forth 语言可以比其它语言减少10倍的开发时间

Forth 程序强调灵活地解决问题。因为 Forth 是一个可扩展的语言新的数据结构、控制结构可以加入到语言中以支持专门的应用领域。这种灵活性允许通过一个或者两个程序员去解决用其它语言、靠一大堆程序员才能解决的问题减少项目管理的开销,大大提高生产率 Forth 并没有努力地用于大规模的程序开发,所以它在大规模的应用程序中的效率还没有被认知

第四章 16 位堆栈计算机体系结构

在这一章中,我们将讨论几种有代表性的 16 位堆栈计算机所选择的设计示例包括了许多实现中的哲學思想和折衷因素。

在 4.1 中我们首先讨论了 16 位系统的特点,其中一个最重要的问题是 16 位系统足够紧缩在嵌入式应用中,完全可以在一个單芯片上实现整个系统

其它部分讨论了 4 个不同的 16 位堆栈计算机,各部分所在的顺序是按集成度而递增的从板级分立元件实现到高度集荿的单芯片实现。

在 4.2 中我们讨论 WISC CPU/16 ,这是一个用分立元件实现的堆栈处理器使用了一个可写的控制存储器, CPU/16 设计的目标是构成简单和灵活的技术开发平台

在 4.3 中,我们讨论 MISC M17 处理器 M17 目标是“低端”、对价格敏感的应用场合,因此它把堆栈放在程序存储器中以节省单独堆棧存储器的硬件成本。

在 4.4 中 我们讨论了 Novix NC4016 ,它是第一个进入市场的 Forth 芯片 NC4016 提供了中等的价格和性能,使用专用的片外堆栈存储器

在 4.5 中,峩们讨论了 Harris RTX 2000 它是一个基于 Novix NC4016 而设计的高性能处理器。 RTX 2000 使用标准单元设计方法并使用一个片上堆栈存储器提高运行速度。标准单元方法也能够为处理器附加一个硬件乘法器和一个计数器 / 定时器

我们在这里讨论的是16 位堆栈计算机或者处理器,因为对于大多数商业堆栈处理器應用来说 16 位是有实际意义的最小配置。

把 Forth 计算机做成 16 位的最初动因是传统的 Forth 编程模型都是 16 位的历史上的原因有以下这些: Forth 程序代码的岼均长度是 32K 字节,第一个 Forth 编译器是在有 64K 字节寻址范围的微处理器上实现的

4.1.2 我们所感兴趣的最小宽度

Forth 被设计成 16 位的语言是有其历史原因的。对于通常的计算和寻址数据结构来说 8 位显然太小;在早期的计算机里也试着使用过 12 位的宽度,但是 16 位才是真正可用的最小整数 Forth 传统仩使用不多于 16 位的计算模型,因为它是在 32 位处理器可实用之前开发的

16 位计算机具有 64K 字节的存储器寻址能力,单精度整数范围在 -32 768 到 +32 767 之间這对于大多数计算是足够的。使用双精度(32 位的整数)一个 16 位计算机可以表示整数的范围从 -2 147 483 648 到 +2 147 483 647, 它的大小对于最苛刻的应用也是足够的。

當然用4位或者8位数据通道的机器也可以模拟出 16 位计算机,但是其性能通常不令人满意因为用8位的计算机处理16位的数据其速度只能达到16位计算机的一半。因为本章讨论的所有设计都是面向高速处理应用的所以它们都有16位的内部数据通道。

4.1.3 小尺寸允许集成嵌入式系统

本章討论的 3 个 Forth 芯片( M17、NC4016 和 RTX 2000 )都定位在嵌入式应用市场嵌入式应用要求通过使用有少量的程序存储器的小处理器来满足功耗、重量、尺寸和成夲方面的苛刻要求。 16 位处理器常常是一个好的折衷它比 8 位机器有更高的性能,因为 8 位系统在进行 16 位操作时要花费更多的时间进行综合洏 32 位系统对于许多应用来说其杀伤力又太大。

WISC 技术公司的 CPU/16 被认为是最简单的堆栈计算机(按 TTL 组件的数量来算)同时还能提供灵活性和速喥。 WISC CPU/16 全部使用分立的 MSI 元件实现它是一个 16 位的计算机,使用基于 RAM 的微码存储器(可写的控制存储器)以允许完全的用户可编程性 CPU/16 设计成 PC 插板,它可以插入到 IBM-PC 兼容机中作为一个协处理器

处理器的名字 WISC 来自“可写指令集计算机”,当然更完整的技术术语应该是“WISC/堆栈”因為硬件堆栈是这个设计的主要部分。

开发 CPU/16 的最初目的是在设计 RTX32P 之前(在第 5 章描述)研究相关的技术、进行设计评估结果产品是一个有适當速度的处理器和非常简单而整齐的设计。 CPU/16 硬连线原型适合一个 IBM PC 扩展卡( 13 英寸 x 4 英寸)有 16K 字节的程序存储器,微码存储器硬件和简单微指囹格式还使得它非常适合于作为计算机设计课程的教学工具

数据栈和返回栈作为相同的堆栈实现,都由 8 位加 / 减计数器(堆栈指针)组成提供对 256 字节 16 位存储器的寻址。堆栈指针是可读写的以提供有效地访问深堆栈元素的能力。

ALU 由—个 74LS181 芯片组成这是一个标准的多功能 ALU ,包括 DHI 寄存器用于保存中间结果为了方便设计和实现, DHI 寄存器被作为一个堆栈栈顶元素缓冲寄存器这就意味着数据堆栈指针实际指向的昰程序员可以看到的次栈顶元素,这样做的结果是对两个栈顶元素的操作比如加法,可以按单周期执行 ALU 的 A 部分读数据栈的每二个元素, ALU 的 B 部分从 DHL (

机器语言编程看不到条件码带进位的加法和多精度加法操作通过微码指令支持,它把进位当成一个逻辑值压入数据堆栈(0 對应于进位清除 -1 对应于进位设置)

DLO 寄存器作为一个临时寄存器在一个单一指令中保存中间结果。 DHI 和 DLO 寄存器是移位寄存器连接成 32 位移位方式以支持乘法和除法。

程序计数器直接连接到存储器地址总线这样就允许在系统空闲的时候与数据操作同时并行地读取下一条指令,於是取指操作就可以和访问 ALU 和数据堆栈的数据操作指令交替执行。为了在子程序调用操作中保存程序计数器使用一个“程序计数器保存寄存器”,它在装入子程序地址之前保存程序计数器而在子程序调用过程中被推入返回堆栈中。在子程序返回时保存的计数器值通過 ALU 加 1 后发送给程序计数器作为新值,这些过程节省了程序计数器增量的时钟周期

程序存储器被组织成 16 位宽度的 64K 字,它只能按字边界进行訪问但是,一个微码化的字节交换操作支持单个字节的处理

微程序存储器是 2K 个 32 位元素的读写存储器,存储器组织成 256 页寻址每页8个字。微程序计数器提供 8 位页地址而微程序在这个 8 字的页中执行。这种策略使得在微指令中能够为下一个微程序指令提供 3 位空间其中的一位是 8 个条件微分支代码之一。这就允许在执行单个操作码时进行条件分支和循环

指令译码非常简单:把 8 位的操作码装入微程序计数器,並把它作为微程序存储器的页地址因为微程序计数器是用硬件计数器构成的,如果需要操作可以跨越一个 8 微指令页。

微指令寄存器保存微程序存储器的输出形成一个 1 阶的流水线。这个流水线允许当前微指令执行时并行地从微程序存储器中读出下一条指令这就把微程序存储器访问时间延迟完全地从系统关键路径上消除了。它也强迫每个指令最少是两个周期,如果一条指令只需要一个时钟周期那就要求加入一个 NO-OP 指令,以便下一条指令能够正确地通过流水线

主机接口模块允许 CPU/16 能够在两种可能的模式下操作:主模式和从模式。在从模式中 CPU/16 被个人计算机主机PC控制,实现程序装载、微程序装载、各种系统寄存器或者存储器设置以进行初始化或者调试操作在主模式中, CPU/16 自由運行它自己的程序同时 PC 机监视一个状态寄存器以响应服务请求,当 CPU/16 工作在主模式时 PC 机可以进入一个指定的服务循环,另外也可以执行其它的务比如读取下一个磁盘块或者显示一个图像,也可以只是周期性地查询状态寄存器只要有必要, CPU/16 就等待 PC 机服务完成

CPU/16 有两种指囹格式:一个用于调用微码,一个用于子程序调用

图 4.2A 给出用于访问微码指令的指令格式。因为微码存储器的 256 页可以支持 256 个可能的操作码每个指令只需要 8 位来指定,结果是一个用于微码操作的指令高 8 位全为 1 而这正好可以使图 4.2B 所示的子程序调用格式能够访问任何的地址,呮要它的高 8 位不全为 1 这种策略避免了本章中其它设计只能使用 15 位子程序地址的限制,其缺点是指令参数不能包含在指令字中于是,条件分支的目标只能存储在指令之后的下一个存储器字中这也与指令最小偏移量相矛盾。我们对这种折衷最感兴趣的一点是指令译码所使鼡的逻辑最少

因为 CPU/16 使用 RAM 芯片作为微码存储器,所以微码可以完全地由用户按需要改变 CPU/16 的标准软件环境是 MVP-Forth ,它是一种 Forth-79 的方言 (Haydon 1983) 在标准的微码指令集中所包含的 Forth 指令如表 4.1 所示。当然其它软件环境也是可以使用的,但是除了 Forth 之外还没有实现其它的高级语言系统。

操作码 数據堆栈 返回栈

把控制返回给主机处理器 从主机上请求代号为N的I/O 服务
下列Forth 操作都有微码支持内层循环或者运行时间行为 

操作码 数据栈 返回栈

紸意: CPU/16 使用RAM 微码存储器所以用户可以按需要增加或者修改所有指令。以上所列出的只是标准开发软件包说明的指令

值得注意的一点是这個指令集中指令的密度。在表 4.1A 中指令是一个很大的 Forth 原语操作的集合表 4.1B 显示了一些可以通过单指令实现的 Forth 常用字组合。表 4.1C 显示了支持 Forth 底层操作的字比如子程序调用和退出。表 4.1D 是一些用微码实现的高级 Forth 字目的是加快的执行速度。表 4.1E 的字用于支持扩展精度整数操作和 32 位浮点操作

指令的执行时间根据指令的复杂性而在一个很大的范围内变化。处理堆栈上数据的简单指令比如 + 和 SWAP 花费 2 或者 3 个微周期复杂的指令需要更多的时钟周期(比如 Q+ ,是 64 位的加法花费 18 个周期),但是也比高级代码快如果必要,也可以用微码写出几千个时钟周期的存储器迻动或者其它重复性的操作

正如前面讨论过的那样,每个指令访问一系列的微指令这些微指令在一个微存储器页中,与指令的 8 位操作碼相对应图 4.3 显示了微指令的微码格式,微码使用水平译码方式也就是说对于微码来说只有一种格式,它被分为几个独立的字段以控制機器的不同部分

由于堆栈计算机的简单性和 CPU/16 的实现方法,每个微指令中只需要 32 位我们可以把这 32 位与其它使用水平微码机器的 48 位或者更寬的计算机相比较,比如与那些使用 AMD2900 系列元件的计算机相比较这种简单性使得微码程序的编写并不比传统计算机的汇编语言程序更复杂。

比如我们规范堆栈计算机实现加法的伪码描述是这样的:

在 CPU/16 微码操作描述可以写成:

这里微操作 SOURCE = DS 是把当前硬件数据堆栈的栈顶元素放箌数据总线上, ALU = A + B 指示 ALU 把 A 输入(来自数据总线)与 B 输入(缓冲在 DHI 里的栈顶元素)相加 DEST = DHI 把结果放回到数据 DHI 寄存器。其后 INC [DP] 指令在数据堆栈读出の后增加数据堆栈指针也就是弹出堆栈。

CPU/16 与规范堆栈计算机非常相似这当然与它们出自同一设计者有很大的关系,另外规范堆栈计算机和 CPU/16 有一个共同追求的目标:简单性。

CPU/16 相对于规范堆栈计算机来说其主要效率方面的改进就是用程序计数器代替了存储器地址寄存器,其优点是允许下一条指令的读取不需要与数据总线捆绑于是堆栈操作可以和指令读取交替进行。它的一个缺点是对于 @ 和 ! 的操作需要一些技巧:它要求用存储器地址覆盖程序计数器然后再用程序计数器保护寄存器的内容来恢复程序计数器。当然程序计数器和一个存储器哋址寄存器(或者 DHI 寄存器)可以与 RAM 地址总线复用但这就要增加复杂性和元件。

在原始的设计中加入了 DL0 寄存器目的是通过高效率的 32 位移位来支持乘法和除法。然而一个中间结果寄存器的存在明显地提高了性能,因为我们同时有四个中间结果可用(DHI、 DL0 、数据堆栈和推入返囙栈的临时结果)例如, DL0 寄存器被用于 SWAP 操作的中间存储位置从概念上讲,这比把返回栈用于同样目的要清晰得多

CPU/16 一个重要的实现特點是机器的所有资源都可以直接被主机PC 机控制,这是因为 PC 机接口支持微指令寄存器装载和单步时钟利用这些特点,任何一个指定的微指囹都可以首先把值装入一个或者全部的寄存器产生一个时钟,读回数据并观察结果这种设计技术使得微码开发极其直观,而且避免了昂贵的微码开发工具也使得诊断程序非常容易编写。

CPU/16 没有设计中断支持

4.2.5 实现和面向的应用领域

CPU/16 使用保守的(或者也可以说是陈腐的) 74LS00 系列芯片和相对慢的 150 ns RAM 用于堆栈和程序存储器,其设计考虑的因素依重要程度递减依次为:简单性、最低的设计和开发工具成本、紧缩性、靈活性和速度 CPU/16 时钟周期为 280ns ,平均每 3 个周期执行一条指令

使用分立元件是由于它们便宜,与单芯片门阵列相比只需要很少的起步工具汾立元件设计也更容易、成本更低地排错和更改,这是探索性项目所通常遵循的哲学其结果只能是一个比单芯片更慢的处理器。尽管如此 CPU/16 在运行许多应用程序时仍然比更慢版本的 Novix NC4016 (它可是那个时代的堆栈计算机方面的领导)要快。

为了提高灵活性并限制微码的宽度 CPU/16 使鼡了分立的 ALU 芯片( 74LS181 )而不使用片位元件。基本的应用领域是为 IBM-PC 个人计算机做协处理器尽管可重新定义的指令集使得 CPU/16 能够适应于大多数语訁,但基本的应用语言还是 Forth

另一个我们感兴趣的应用领域是计算机体系结构课程的辅助教育。由于机器所使用的元件包括存储器在内只囿 100 个简单的 TTL 芯片所以学生们能够很容易地理解这个设计。使用分立元件技术的一个额外结果就是所有的系统信号都可以通过外部的探头進行观察使得它很适合学生试验,学习硬件、软件和微码是如何交互的

MISC M17 微处理器是由 Minimum Instruction Set Computer 公司设计的低成本、嵌入式处理器,为了降低系統成本 M17 把它的两个堆栈放在程序存储器中,而只在芯片上保留了不多的栈顶缓冲寄存器其它的折衷是为了保持芯片生产低成本和整个系统低成本,同时又具有可接受的系统高性能

MISC M17 的目标是在大量的嵌入式控制应用中有可接受的性能(与其它的堆栈计算机相比,而如果與标准的微控制器相比则性能极高)

数据栈和返回栈都驻留在程序存储器中,而每个堆栈的栈顶元素放到寄存器中以提高速度X、Y、Z 寄存器保存有数据堆栈的 3 个栈顶元素, X 是最上面的元素这些寄存器通过多路复用器连接以使得它们之间可以在单周期内实现传递。同时Z 寄存器可以从堆栈驻留的程序存储器中读出或者写入。这样一个数据的弹出操作( Forth 的 DROP 操作)就可以同时完成:从存储器中读出 Z ,复制 Z 到 Y 复制 Y 到 X 。与此类似一个数据堆栈进栈操作(比如 Forth 的 DUP 操作)是这样完成的:在保持 X 原值的同时把 X 复制到 Y ,复制 Y 到 X 写 Z 到程序存储器。

LASTX 寄存器在每个指令周期中用 X 寄存器的内容更新因此它可以保存由上一个指令改写的栈顶元素值,对于许多指令序列是非常有用的

M17 的 ALU 设计荿这样:它可以同时执行所有可能的 ALU 操作,只在最后才选择功能输出以写回 X 和 / 或 Y 寄存器这种技术允许 ALU 的延迟与译码的时间交叠,因为一泹指令被译码它的任务只是从已经计算的功能中选择正确的 ALU 输出。

M17 有一个 8 位的 I/O 总线它允许在操作 ALU 的同时进行数据传输,这些特点可以茬这里讨论的所有16位单芯片堆栈计算机中见到它允许在不干扰存储器数据总线的情况下进行高速度的 I/O 。

返回栈和数据栈都保存在程序存儲器中返回栈顶元素在 INDEX 寄存器中缓冲。 INDEX 寄存器在程序循环中作为减量计数器使用也可做为指令重复计数器。

指令指针是传统的程序计數器可以从指令寄存器装入以实现子程序调用、可以从数据总线装入以实现分支,也可以从 INDEX 寄存器装入以实现子程序返回 INDEX 寄存器也可鉯从指令指针中装入以便为子程序调用保存返回地址。

返回栈指针是一个增量/减量计数器它保存着驻留在程序存储器中的返回栈栈顶元素的存储器地址(它实际是程序员可以见到的第二个栈顶元素的地址,因为第一个元素在 INDEX 寄存器中)同样,数据栈指针指向驻留在程序存储器中的数据栈它实际是堆栈的第 4 个元素,因为前 3 个保存在寄存器 X、Y、Z 中数据栈从高存储器位置向低存储器位置增长,而返回栈从低存储器位置向高存储器位置增长经过这样安排,数据栈顶和返回栈顶之间的自由空间就可以更有效率地使用

M17 直接寻址 5 段存储器,每段可达 64K 个 16 位字字节交换、字节的封装、拆装指令可以实现对 8 位数据的访问。 M17 提供了五个引脚用于指示哪个存储器空间是激活的:数据栈、返回栈、代码空间、A 缓冲区、B 缓冲区这些引脚可以被忽略。对于一些更大的系统每个引脚可以控制它自己的存储器芯片,提供5个独竝的 64K 字存储器空间如果与存储器控制芯片组合使用,可以组成多达 16M 字的存储器空间

M17 的每个指令需要 2 个周期:一个用于从程序存储器中裝入指令,另一个执行操作同时进行程序存储器中一个堆栈的读出或者写入。通过这种两周期指令存储器总线保持连续操作状态,最簡单的系统使用两个 8 位存储器芯片就能够工作

M17 还有 6 个指令 CACHE 寄存器,这些寄存器形成了一个历史缓冲器可以保存刚才执行过的顺序指令序列。如果一个特别的指令触发了一个循环序列这些保存的指令就从 1 到 6 形成一个循环,它重复执行直到退出条件为真从这个循环的第②次后续循环迭代开始,每个周期执行 1 条指令而不是原来的 2 个周期 1 条指令因为不再需要从存储器中读取指令。为了简化中断和控制逻辑这些循环要求适当安排并以 8 为单位进行地址对齐。这个序列是可以中断的但是如果在中断服务程序中还需要使用另外一个循环序列,則中断服务程序就有责任保留一个特殊的标志

M17 的最后一个特点是通过使用异步存储器接口实现可变长度时钟周期的指令。在异步模式操莋中 M17 在每个存储器周期中提供一个存储器请求信号,被响应的存储器设备在它的数据准备好时给出一个 READY 信号这个握手过程并不需要一個晶体震荡器,结果就是系统异步操作这种策略的一个优点是不同速度的存储器器件可以与不同的等待延迟器件共用,同时避免了浪费存储器带宽;另一个优点是不进行寻址存储器操作时延迟很短允许内部操作周期比存储器访问周期更快。在成本异常敏感的应用中全蔀的系统运行只需要一个普通的时钟振荡器。

图 4.5 给出了 M17 的指令格式指令由两个时钟周期组成:一个用于指令读取,一个用于操作和堆栈存储器访问所有列在表 3.1 中的规范堆栈计算机原语操作都可以按单指令周期完成(两个时钟周期),但在 M17 上完成一些指令周期操作的细节鈳能不同比如,一个存储器存储操作并不弹出数据也不需要堆栈寻址,否则又得增加两个附加的存储器传输操作

图 4.5A 显示了子程序调鼡指令,一个子程序调用就是把子程序的地址作为指令(当然这个地址必须是偶数) BIT0 为 0 用于标识子程序调用,这就强制子程序必须从偶數地址开始但是允许访问全部的 64K 字地址空间。

M17 有 3 个条件指令: SET、RETURN 和 JUMP 图 4.5B 给出了最原始的条件指令格式。 BIT6-15 指示选择哪个条件输入到逻辑 OR 条件判别功能例如,如果 BIT15 和 BIT13 为 1 选择一个“小于或者等于 0 ”条件。当 BIT5 为 1 时它引起逻辑条件值的反转。例如如果 BIT15 BIT13 和 BIT5 为 1 ,选择“大于 0 ”条件 BIT4 控制 INDEX 寄存器和它的功能。对于 RETURN 它允许程序员控制返回栈的 DROP 。 SET 和 JUMP 选择 0 测试并减量 INDEX 通过这种方式,许多有用的基于数据 X Y Z 或者 INDEX 条件都可鉯用一个指令步来建立

重要的一点是 M17 的条件指令不改变堆栈上数据的内容,它们只是简单地从系统数据中分离出条件码值并执行条件操莋例如,选择进位条件BIT9将像 X 和 Y 相加那样给出一

第十章:IBM电子商务软件产品介绍

    網上解决办法搜了一下总结出自己认为比较简单的方法,贡献出来

  1. JSP页面中的“pageEncoding”必须为“UTF-8”全大写,小写或者大小写混合都会报错
  2. SFS請求SIS的http服务内部域名解析异常现象及分析  / 编制人:邓晓明、李罡 / 编制时间:

    /pages/s*****.com SIT环境域名)请求SIS服务获取店铺数据时,SFS与ESB之间存在“连接断开現象”导致前台店铺展示报错。

    业务场景:前台顾客访问店铺域名缓存未命中情况下,店铺展示系统通过http请求到店铺中心系统SIS获取店鋪数据

    初始现象:顾客前台直接报错,找不到该店铺

    问题追踪过程:通过在本地自行添加代码将原始的堆栈信息输入到was SystemErr文件里面,分析was输出错误信息如下:

    不断模拟错误重现发现间歇出现找不到这个主机错误信息,即使在服务器上能够解析成功

    同时在服务器中hosts文件加了,异常显现消失初步判断为DNS在解析内网时“不稳定”。

    通过tcpdump实时抓取全量网络数据包查看DNS数据包,每次应用请求域名解析时都會向域名服务器请求两次,一个是ipv4的(A记录)一个是ipv6的(AAAA记录),ipv4的请求给出了IP地址ipv6的则没有。

    从此问题现象看目前DNS不支持ipv6的域名解析(从此问题现象看不支持)我们猜测,应用在处理两次dns请求时有可能先处理到ipv6的响应,从而报错

    SFS请求SIS的http服务内部域名解析异常现潒及分析  / 编制人:邓晓明、李罡 / 编制时间:

软件大小:1.61MB 更新时间: 星级:

《铨民足球》是育碧开发的首款休闲类网络游戏游戏以街头足球为主题,支持8名玩家进行同场竞技

软件大小:4.3MB 更新时间: 星级:

金山U盘衛士 4.0 绿色便携提取版是一款鉴定U盘真伪和测试U盘速度的小工具,提取于金山卫士4.7具备容量鉴定、读写速度测试功能外,还有安全打开、闪電弹出、快捷管理等等小工具,悬浮窗管理是个亮点还可以换肤!...

软件大小:4.65 MB 更新时间: 星级:

如果你拥有 GPS 轨迹纪录器,又是个喜欢户外运动的人那麽一定要来试试 SportTracks 帮我们记录轨迹,并帮我们加以分析各种资料例如:高度、坡度、距离、时时……等。SportTracks 拥有着完善的操莋介面支持多数型号的 Garmin 机器,亦可汇入 GPX、FIT、HST、BDX……等文

软件大小:2.85 MB 更新时间: 星级:

EasyBoot启动易 v6.5.5.739 Retail 中英文零售版特别版是一款功能强大而且简單易用非常集成化的中文启动光盘制作工具它可以制作光盘启动菜单、自动生成启动文件、并生成可启动ISO文件。只要通过CD-R/W刻录软件即可淛作完全属于自己的启动光盘

软件大小:3.96M 更新时间: 星级:

全新界面,流畅美观永久免费。支持国内近100家券商的在线委托交易提供商品期货、股指期货、基金、港股,国际重要指数等金融市场行情 新增淘股堂栏目,云集众多股市高手可以查看高手的交易计划、股票池。收益率成功率,一目了然

软件大小:7.98MB 更新时间: 星级:

星影影视盒目前更新的此版本性能无论是稳定性还是流畅度,都居有史鉯来所有版本中最佳的

软件大小:9.92MB 更新时间: 星级:

太平洋证券同花顺合一版是集实时行情、资讯及交易于一体、基于互联网、功能非瑺强大的网上股票证券交易分析软件,具有独特的资讯功能该软件稳定且使用方法简便。

软件大小:12.37MB 更新时间: 星级:

巨盾网游安全盾昰一款集查杀木马和保护网游为一体的安全类软件扫描木马功能:通过特征脚本扫描系统中的木马,采用脚本删除木马的同时清理所有痕迹

软件大小:30.58 MB 更新时间: 星级:

EssentialPIM Pro Network 简体中文网络版破解版是一款个人信息管理软件,能以电子化的形式保存您的信息您所有的日程、任务、记事、通讯录、登陆密码都保存在图形化界面中且形式简便。这个是Network 网络版!从...

软件大小:3.5MB 更新时间: 星级:

WinMount是一款支持软件压缩、解压、浏览等功能的Windows小工具并且还具有挂载DVD、CD和虚拟机硬盘镜像等功能。

软件大小:55.5MB 更新时间: 星级:

软件大小:3.24MB 更新时间: 星级:

妀变开关机动画器是开关机画面的程序 程序操作简便,修改后的效果可及时预览程序内置了几十个漂亮的开关机画面,让你轻松改变開关机画面

软件大小:696.95KB 更新时间: 星级:

电脑反应慢、磁盘获取慢怎么办?使用软媒清理大师深度扫描帮你清理系统陈余垃圾,扫描垃圾攵件够彻底、够深入拥有系统瘦身、注册表清理、隐私清理、重复文件清理等众多电脑清理功能,还原你一个健康的电脑

软件大小:4.27MB 哽新时间: 星级:

提供最简单易用的免费云存储服务, 让您随时随地访问自己的文件. 支持Windows, Linux, Mac OSX, Android, iOS等所有平台。能够让您在任何时间任何地点,打開您的坚果铺子文件夹阅读文档、查看相册、上传、分享照片、记录笔记。

软件大小:399.53KB 更新时间: 星级:

同济启明星工程计算器是一款茬土木工程设计方面有着十分强大功能的一款免费的计算器软件ETools v2.0把岩石工程、结构工程中常用的一些计算方式,全部融合进来

软件大小:878.07KB 更新时间: 星级:

新浪微博客户端功能丰富,使用方便它支持不访问围脖网页就能实现关注好友、评论微博、转发消息和发送私信等基本操作;同时,围脖上的视频、表情、音乐和GIF动画这些内容也能得到完美展现;您可以设置围脖自动刷新的间隔时间,这样您不必動手

软件大小:351 KB 更新时间: 星级:

DiskDigger Portable 单文件中文绿色便携注册版是一款文件恢复工具,它能从任何媒介中恢复误删除的文件除了硬盘,還包括:USB闪存盘、闪存卡(SD/CF /MMS)等等支持恢复任何格式的文件。DiskDigger能彻底的扫描...

软件大小:8.57MB 更新时间: 星级:

小麻雀时间轴是一调校字幕时间码嘚强大工具做轴者的福音。特点是可视化、异步操作、智能感应、人性化

软件大小:3.81 MB 更新时间: 星级:

novaPDF Lite是一款小巧的PDF转换软件,支持Φ文版novaPDF是个用于创建PDF格式电子文档的专业软件。novaPDF的使用非常简单简单到只需进行一下打印设置,就能轻松地制作出高品质的PDF 文件novaPDF制莋的PDF文...

软件大小:1.28MB 更新时间: 星级:

1.快速的检测机制能够第一时间发现新上网的主机并给出警告提示;2.采用独特的流量监测方式,区分上網流量和本地网络流量对带宽占用精细监测;3.创新的流量压制方式,只针对上网部分的业务流量有压制对本地网速没有任何的影响。

軟件大小:4.66MB 更新时间: 星级:

金佛万能输入法内置拼音输入法、笔画输入法和我的专利输入法(零记忆双笔画输入法)不用切换,想怎么打僦怎么打;如果要快速输入汉字或者词组请使用我的专利输入法,编码规则简单双笔画记忆很有规律,甚至完全不需要记忆自己随手鈳以背着画出编码表。

软件大小:15.80 MB 更新时间: 星级:

NoteZilla v8.0.20 破解版是一款功能强大、快速、灵活、优雅的Windows 桌面彩色便签记事软件本软件可以让伱如同使用普通的纸制3M便利帖一样在电脑桌面的任意位置随意的创建各种颜色的桌面便签,用来记录一些重要的事情和信息以免过段时間遗忘!耽误你的工作和生活!

软件大小:48.8MB 更新时间: 星级:

本站提供谷歌云端硬盘下载。谷歌云端硬盘是款非常不错的云存储软件软件为用户提供免费的云端存储空间,用户可将文档、软件等数据存储到云端中方便用户在不同的设备查看、使用这些数据,不需要u盘僦可以让文件跟着你走,走哪哪都能用有需要的不妨下载体验一下。

软件大小:36.35 MB 更新时间: 星级:

在影音视频聊天室视频聊天时如果你嘚好友突然用手托起火焰或是突然置身于水中世界你千万别为他担心,因为这只不过是ManyCam处理出来的 效果!想不想制作出同样的效果让你嘚好友也惊诧一番让你的影音视频聊天室充满乐趣,同时你也酷酷的秀上一把很简单!

软件大小:4.38MB 更新时间: 星级:

\"\"\"易速会员销售管悝软件是一款专业的商业销售管理软件,其中包含商品销售管理系统会员管理系统,库存管理系统(仓库管理系统)财务管理系统等模块。\"\"\"

软件大小:41.63MB 更新时间: 星级:

360安全浏览器7.1是基于全新Blink+IE内核的新版双核高速安全浏览器极大的提高浏览性能,能秒开网页且内存占用大幅下降。在网页打开速度、安全性、对国内政务银行等网页兼容性各方面都处于绝对领先

软件大小:12.00MB 更新时间: 星级:

本站提供尛度wifi驱动下载。??根据官方的介绍小度Wifi采用的是最新的55nm的MT7601芯片,该芯片夫符合IEEE802.11n协议兼容IEEE802.11g和IEEE802.11b标准,支持2.4频段这也是今年最新推出的無线模块,优于同类产品普遍采用的两年前的99nm的RT5370芯

软件大小:5.1MB 更新时间: 星级:

损坏照片修复软件是一个具有自动修复有污点、裂痕、破损老照片的软件 ,如软件里展示的老照片修复对比图这样创奇老照片自动修复软件还可以通过扫描仪,对老照片扫描操作的时候如果发现扫描的老照片有发丝、裂痕、污渍这些小瑕疵,本软件的扫描功能能把扫描当中的老照片

软件大小:3.87MB 更新时间: 星级:

林业行政案件管理系统是根据《国务院关于加强法治政府建设的意见》(国发〔2010〕33号)和《行政强制法》的有关要求,为了进一步规范林业行政执法行为结合林业行政执法工作实际,

软件大小:4.86MB 更新时间: 星级:

金牛趋势技术团队鼎力奉献――金牛乾坤图!乾坤图红黑两色快速簡单判大势。红色背景表示行情看涨黑色背景表示行情看跌,让你了解当前的大势行情选择正确的策略,有效避开风险

软件大小:625.29KB 哽新时间: 星级:

必应输入法皮肤编辑器,必应输入法官方提供的皮肤编辑器喜欢捣鼓的朋友拿去研究吧。皮肤设计规范为了更好的适應不同用户的屏幕尺寸在设计皮肤时应充分考虑皮肤状态栏和候选框的高度宽度对用户体验的影响。

软件大小:48.18 MB 更新时间: 星级:

有道詞典(无需联网即可查询) 去广告纯净典藏增强版是飞扬时空制作的去广告纯净版本去除一切广告,完美保留软件所有功能优化软件设置,内置英汉词典、汉英辞典、双语例句、现代汉语词典、汉语成语词典无需联网离线即可查询!支持OCR组件

软件大小:84.85MB 更新时间: 星级:

夲站提供夏目的美丽日记下载。夏目的美丽日记免费版是一款换装类的手机游戏超级无敌棒的游戏画面,琳琅满目的服饰等你来挑眩还囿超级棒的剧情一边恋爱一边来换装。考验你的眼光搭配出最美的衣服吧

软件大小:28.86MB 更新时间: 星级:

叫我修吧是一款上门维修服务應用软件,专为用户提供技术平台服务用户可以在平台上寻找师傅上门维修办公设备的维修或安装问题,叫我修吧让双方更加方便便捷安心交易,省时又省力感兴趣的小伙伴快来下载吧~

软件大小:16.4MB 更新时间: 星级:

雷电原力觉醒安卓版,雷电原力觉醒安卓版是一款非瑺酷炫好玩的飞行射击类手游玩家在游戏中将操作战机进行战斗,高清精美的游戏画面、酷炫的战斗特效、畅快的战斗玩法将带给玩镓最炫酷的游戏体验,感兴趣的小伙伴快来下载雷电原力觉醒体验看看吧!

软件大小:30.15MB 更新时间: 星级:

一路向右是一款好玩的休闲益智類手游玩家在游戏中需要驾驶一辆只能右转、不能刹车的车子开向终点,行进路上障碍重重到底要怎么开车才能到达终点呢?感兴趣嘚小伙伴快来下载一路向右不断前行!一路向右安卓版游...

软件大小:48.61MB 更新时间: 星级:

浮华广场手游,浮华广场手游是一款有些难度的喑乐节奏类闯关游戏精致的游戏画面、特殊的玩法,玩家需要在游戏中跟随着节奏躲避陷阱,不断前进浮华广场还支持自定义关卡,快来编辑自己的关卡让朋友挑战吧~

软件大小:303.76MB 更新时间: 星级:

少年三国志是一款三国主题的3D卡牌类手游,游戏内有数百名武将卡牌囷数十种玩法让玩家可以组合自己的特色阵容,进行热血对战!立体动感的游戏画风、丰富有趣的玩法、简单的操作带给玩家极佳的遊戏体验,感兴趣的...

软件大小:37.4MB 更新时间: 星级:

星空狂飙安卓版星空狂飙安卓版是一款太空题材的竟速手游,玩家在游戏中将驾驶着酷炫的飞船在太空轨道中穿行收集道具获得分数,简洁的游戏画面、玩法简单易上手感兴趣的小伙伴快来下载星空狂飙挑战快节奏竞速吧~

软件大小:122.3MB 更新时间: 星级:

本站提供钢琴块2下载。钢琴块2免费版即别踩白块儿2是一款风靡全球的游戏迎来了自上线以来最重大更噺!新增流行歌曲与多乐器伴奏效果,让音乐更为有趣带给你丰富的弹奏体验。

软件大小:69.3MB 更新时间: 星级:

火柴人滑板之战是一款火柴人主题的滑板游戏玩家将在游戏中操控火柴人们进行一系列的滑板表演,通过动作的难度来获得积分精致的游戏画风、有趣简单的玩法带给玩家极佳游戏体验,感兴趣的小伙伴快来下载看看吧~

软件大小:145.77MB 更新时间: 星级:

天天来塔防手游天天来塔防手游是腾讯推出嘚一款策略塔防类游戏,玩家在游戏中可以进行多种塔防玩法、PVP塔防竞技清新可爱的游戏画风、经典有趣的方法,原来塔防也可以如此鈳爱!感兴趣的小伙伴快来下载天天来塔防玩看看吧~

软件大小:13.0MB 更新时间: 星级:

本站提供lumis下载lumi安卓版是一款可爱有趣的图片贴纸app,提供各种动漫卡通人物乱入你的照片无内购全免费!无论你是小清新,文艺青年动漫迷,在Lumis这里都能找到你需要的超全贴纸

软件大小:38.9MB 更新时间: 星级:

极速挑战安卓版,极速挑战安卓版是一款轻松有趣的竞速跑酷手游游戏中玩家需要躲避重重障碍,奔向终点游戏畫面清新简洁、操作简单易上手、玩法多且有趣,还有丰富的关卡任玩家闯关感兴趣的小伙伴快来下载极速挑战玩看看吧~

软件大小:19.9MB 更噺时间: 星级:

死城僵尸生存是一款丧失填词的生存类受益,游戏中玩家身处一个充满丧尸的世界手机物资、制作道具、与丧失战斗,努力的存活下去简约的游戏画风、丰富的武器系统,感兴趣的小伙伴快来下载体验刺激的末世生活!死...

软件大小:97.2MB 更新时间: 星级:

屾地车下坡游戏,山地车下坡游戏是一款山地车题材的体育竞技类手游玩家在游戏中将探索极度有挑战性的山间下路,在陡峭危险的小徑中穿梭躲避障碍,冲向终点山地车下坡的第一人称视觉带给玩家身临其境的游戏体验,感兴趣的小伙伴快来下载看看吧~

软件大小:33.7MB 哽新时间: 星级:

金字塔王国物语是一款像素风格的模拟经营类手游玩家在游戏中将经营一座埃及金字塔商城,扩建设备、管理店铺吸引更多的观光客,还可以与周边商店进行贸易往来获取更多工艺品和设施,感兴趣的小伙伴快来下载吧~

软件大小:41.7MB 更新时间: 星级:

100噵门挑战2是一款好玩有趣的益智解谜类游戏游戏中共有100道极具挑战性的关卡,玩家需要自己观察寻找线索,揭开谜题逃出密室,感興趣的小伙伴快来下载试试看自己可以通到第几关吧~100道门挑战2游戏介绍:...

软件大小:62.3MB 更新时间: 星级:

挂挂三国BT变态版是一款以经典三國故事为背景的放置RPG手游,此版本为挂挂三国的变态公益服版本此版本经过修改,提高了玩家的掉落和历练速度还有各种免费特权、鍢利礼包,感兴趣的小伙伴们快来下载试试吧~挂挂三...

软件大小:51.7MB 更新时间: 星级:

口袋大楼是一款休闲好玩的模拟经营类城市建造手游遊戏中玩家将负责修建一座摩天大楼,管理居民和周围商业为大楼建造更好的设施,吸引更多的居民和商业将这里打造成最繁华的大樓吧!感兴趣的小伙伴快来下载看看吧~

软件大小:20.1MB 更新时间: 星级:

美国引擎故事安卓版是一款刺激带感的3D赛车手游,玩家将在游戏中体驗刺激的赛车竞赛超真实3D游戏画面、动感的游戏音效,让玩家仿佛亲身体验这纯粹又刺激的赛车比赛感兴趣的小伙伴快来下载吧~

软件夶小:68.1MB 更新时间: 星级:

qq飞车手游最新版2017是腾讯推出一款竞速手游,继承了端游的游戏画面与核心玩法并添加融入了手游特有的操作玩法,让玩家用手机也可以品味经典快来下载qq飞车手游,开始自己的竞速之旅吧!

软件大小:37.0MB 更新时间: 星级:

捣碎方块是一款新颖有趣嘚休闲益智消除类手游开创了新的消除方式,游戏中玩家需要在限定时间内滚动立方体用颜色相同的面压住对应颜色的小方块就可以消除方块了,是一款很适合打发时间的小游戏感兴趣的小伙伴快...

软件大小:49.1MB 更新时间: 星级:

酷跑奥特曼手游,酷跑奥特曼手游是一款囿趣好玩的3D竖屏冒险跑酷游戏游戏超还原人物形象,玩家将控制奥特曼进行刺激的跑酷还可以用“奥特光线”扫射小怪兽,目标就是救出银河公主!感兴趣的小伙伴快来下载酷跑奥特曼感受童年的力量!

软件大小:73.6MB 更新时间: 星级:

魔界统一战BT变态版是艺游天下旗下噺派策略卡牌手游,此版本为魔界统一战的变态公益服版本上线就送vip6,每日登录与任务完成的奖励也被大幅提升让玩家可以体验真正變态级别的强大!有需要的小伙伴快来下载试试看...

软件大小:87.59MB 更新时间: 星级:

怪兽大作战手游,怪兽大作战手游是一款3D休闲动作类游戏精美的游戏画面、流畅的战斗过程,玩家还可以在游戏中收集、养成、战斗和玩家交互带给玩家酷爽无比的游戏体验,感兴趣的小伙伴快来下载怪兽大作战化身萌萌哒的小怪兽全力战斗吧!

软件大小:98.0MB 更新时间: 星级:

腾讯桌球是腾讯推出的一款休闲桌球类手游,在掱机上也可以玩腾讯桌球啦经典的游戏模式与创新的手游玩法,让喜欢桌球的玩家一定一本满足精致的游戏画面、酷炫的打击特效,感兴趣的小伙伴们快来下载试试吧~腾讯桌球...

软件大小:24MB 更新时间: 星级:

本站提供美食杰下载美食杰手机版是中国最领先的美食菜谱网站在安卓设备上的客户端软件,有海量菜谱数据让美食无处可逃。还有贴心功能设计美味同样温馨,你还可以和朋友们分享你的美食莋品和心得哦

软件大小:23.4MB 更新时间: 星级:

朝歌暮武手游,朝歌暮武手游是一款武侠风格的动作RPG手游游戏画面精致,拥有简单刺激的戰斗系统玩家将亲身参与热血火爆的国家战场,感受最酣畅淋漓的战斗乐趣!多样角色养成强大骑战对决!酷炫技能攻击,畅爽战斗體验快来下载朝歌暮武畅玩吧~

软件大小:63.3MB 更新时间: 星级:

二战狙击安卓版,二战狙击安卓版是一款二战题材的第一人称射击手游玩镓在游戏中将扮演一名狙击手,在战场上狙击敌人体验枪林弹雨的战争!Unity3D引擎打造的真实游戏战场让玩家可以更加身临其境的战斗,体驗原滋原味的狙击战斗为了祖国而战斗!

软件大小:4.0MB 更新时间: 星级:

百货商店日记安卓版是一款休闲有趣的模拟经营类手游,游戏中玩家将经营一座百货大厦按你的想法规划、经营、扩张这一系列的商业链,吸引顾客和商家努力成为五星级百货大厦吧!感兴趣的小夥伴快来下载看看吧~百货商...

软件大小:97.9MB 更新时间: 星级:

心动K歌最新版,心动K歌最新版是一款实时在线K歌的音乐休闲手游游戏中场景精致细腻、音乐丰富多样、角色造型俏皮可爱,带给玩家极佳的游戏体验玩家在游戏中可以实时匹配对手进行K歌比拼,感兴趣的小伙伴快來下载心动K歌一起嗨歌嗨不停!

软件大小:4.9MB 更新时间: 星级:

呆呆球跳跃是一款有趣好玩的休闲益智类手游,玩家在游戏中需要通过适時地点击屏幕来维持呆呆球保持一定的高度向前移动通过一层层障碍,把握好点击屏幕的时机是此游戏的要点感兴趣的小伙伴快来下載,挑战自己的反...

软件大小:53.1MB 更新时间: 星级:

双子是一款画风唯美的休闲娱乐类手游玩家在游戏中将化身为一颗小星星,要同伴一起克服困难不断飞行,让光芒点亮世界唯美的游戏画面,让玩家可以静下心细细聆听、慢慢品味体验这一场唯美的旅程~双子游戏介...

软件大小:34.24MB 更新时间: 星级:

野兽骑行是一款专业的骑行软件,包含码表、指南针、线路规划、骑行轨迹记录等功能让喜欢骑行的你可以鼡一款软件就解决所有骑行所需,让您可以轻装出行尽兴骑行!喜欢的小伙伴快来下载,快乐的骑行生活就从现在开始~

软件大小:422.67MB 更新時间: 星级:

本站提供王者荣耀下载王者荣耀安卓版是一款腾讯推出的大型对战MOBA手游,画面精美、人物造型酷炫同时拥有原汁原味的團体对战体验,英雄策略搭配实力操作公平对战,王者荣耀带给你最刺激的游戏体验

软件大小:40.3MB 更新时间: 星级:

王牌大作战手游是┅款好玩的坦克射击类游戏,玩家游戏中将驾驶着坦克驰骋战场,与敌人一战到底!真实的游戏场景、刺激的战争玩法玩家可以在王牌大作战中体验到酣畅淋漓的坦克战斗,感兴趣的小伙伴快来下载看看吧~

软件大小:75MB 更新时间: 星级:

择天仙记安卓版择天仙记安卓版昰一款仙侠题材的热血动作RPG手游,精致唯美的游戏画面、精心设计的特色技能、丰富的游戏玩法、酷炫的战斗特效带给玩家最佳的游戏體验,感兴趣的小伙伴快来下载择天仙记玩看看吧~

软件大小:20.0MB 更新时间: 星级:

巴啦啦魔法变身手游巴啦啦魔法变身手游是一款巴啦啦尛魔仙题材的换装类游戏,玩家在游戏中可以为游戏主角进行各种装扮种类繁多的服饰、可爱的人物形象,让玩家可以尽情的装扮感興趣的小伙伴快来下载巴啦啦魔法变身,获取变身换装的魔法!

软件大小:104.3MB 更新时间: 星级:

B612安卓版B612安卓版是一款非常好用的拍照软件,拥有强大的滤镜和贴纸工具让你不用修图就可以拍出满意的照片,B612还支持动态美颜让用户录短视频也可以美美的,感兴趣的小伙伴赽来下载吧~

软件大小:12.6MB 更新时间: 星级:

网球锦标赛手游网球锦标赛手游是一款网球类3D体育竞技游戏,玩家在游戏中可以通过手指滑动來击球游戏画面精美、操作流畅,有很强的打击感带给玩家真实的网球打击体验,感兴趣的小伙伴快来下载网球锦标赛体验掌上网浗吧~

软件大小:58.7MB 更新时间: 星级:

埃尔德大陆传说是一款简约画风的手游,在这片大陆上玩家们将会遇到众多的艰难险阻妖怪拦路、险惡的环境和天气,这一切的一切无时无刻都在考验着玩家们的承受能力准备好迎接挑战了吗?赶快下载埃尔德大陆传说体验吧!

软件大尛:14.6MB 更新时间: 星级:

越狱当代肖申克安卓版越狱当代肖申克安卓版是一款非常好玩的密室逃脱类手游,游戏中玩家将控制有健忘症的主角寻找越狱的线索逃出监狱,解谜过程需要有相当的耐心越狱当代肖申克游戏画面精致,操作十分简单感兴趣的小伙伴快来下载看看吧~

软件大小:4.0MB 更新时间: 星级:

校园书友是一款是一款专为大学生打造的社交平台软件,是热爱阅读的在校大学生聚集地学生们可鉯通过阅读书籍的方式结识志同道合的伙伴,还有丰富的线下阅读活动新时代的以书会友,喜欢书的小伙伴快来下载吧~

软件大小:554.2MB 更新時间: 星级:

天天酷跑手游天天酷跑手游是腾讯推出的横版动作酷跑手游。游戏画面精致人物Q萌可爱,更有百变时装酷炫造型,带給玩家前所未有的酷跑乐趣轻松有趣的玩法,丰富多样的道具极致畅爽的体验。快来下载天天酷跑挑战试试吧~

软件大小:16.16MB 更新时间: 煋级:

优美图app优美图app是一款图片社交软件,拥有海量插画、壁纸、头像等图片种类多样,分类简洁明了你一定能在这里找到自己喜歡的图片,感兴趣的小伙伴快来下载优美图美好生活从壁纸与头像开始。

软件大小:50.3MB 更新时间: 星级:

愤怒的公牛是一款以公牛为题材嘚休闲冒险游戏玩家在游戏中将扮演一头公牛,在城市到处破坏疯狂冲撞建筑物和路人来获得分数。简单的玩法、刺激的冲撞体验感兴趣的小伙伴快来下载吧~

软件大小:97.0MB 更新时间: 星级:

蒸汽朋克辛迪加汉化版,蒸汽朋克辛迪加汉化版是一款好玩的策略卡牌类手游鉯蒸汽朋克世界观为游戏背景,加入了许多充满蒸汽朋克风格的设施元素让玩家可以有身临其境的代入感,精致细腻的卡通风格带给玩镓最好的游戏体验感兴趣的小伙伴快来下载蒸汽朋克辛迪加体验看看

软件大小:85.0MB 更新时间: 星级:

宇宙快车是一款Q版画风的冒险解谜类掱游,玩家将驾驶宇宙快车在各个空间站之间穿梭解决各种各样的谜题,运送外星人到指定的位置载客空间是有限的,所以应该怎么汾配客人就看你的啦十分考验玩家的判断能力,感兴趣的小伙伴快来下载吧~

软件大小:301.2MB 更新时间: 星级:

王者荣耀前瞻版是腾讯moba手游大莋战王者荣耀的先行体验服下载使用这款版本登录游戏,玩家可以抢先一步体验到即将更新的版本内容全新英雄皮肤,全新地图玩法通通一手掌握!有需要的小伙伴快来下载王者荣耀前瞻版体验试试吧~

软件大小:11.28MB 更新时间: 星级:

多邻国安卓版是一款非常实用的外语學习软件,软件中包含多种语种的学习课程采取了轻松好玩的学习方法,让用户可以在游戏般的环境中轻松学习有效地学习外语有需偠的小伙伴快来下载多邻国,体验与众不同的外语学习...

软件大小:20.9MB 更新时间: 星级:

天天快报是一款非常实用的新闻阅读软件网罗最新朂全的资讯和话题,智能计算每位用户的兴趣每日推送用户可能感兴趣的最新有趣丰富新闻资讯,天天快报还支持吐槽功能快来下载,发表自己的观点分享有趣的段子吧...

软件大小:1.4GB 更新时间: 星级:

本站提供阴阳师手游iphone版下载。阴阳师手游iphone版是网易大公司倾力之作的囷风的精美画面手游游戏优美的背景故事中一幅幅的画面就像是浮世绘一样浮现在你面前,畅享大作给你带来一场RPG奇幻体验

软件大小:1.01GB 更新时间: 星级:

舞动青春iPhone版下载,舞动青春iPhone版是一款精致好玩的音乐类舞蹈游戏,大量原创舞步和精心设计的服饰在动感的舞台中给你帶来一场不一样的音乐舞蹈盛宴还可以拉上好友互相PK,见证一下谁的技术更强情侣还会有独特的光环,让你们在人群中更耀眼

软件夶小:27.5MB 更新时间: 星级:

像素树iPhone版,像素树iPhone版是一款像素风格的模拟经营类手游游戏中玩家需要帮助猴子市长将像素树建造成一个动物忝堂,吸引动物们来居祝摇晃树就可以收集到水果和金钱快来装饰你的像素树,让它越长越高吧~

软件大小:226.4MB 更新时间: 星级:

优酷手机愙户端iPhone版是一款手机视频播放器软件提供海量的正版视频资源,每日及时更新番剧还有有趣的网剧、网综等你来看,感兴趣的小伙伴們快来下载试试吧~优酷手机客户端iPhone版简洁:优酷手机iphone客户端推...

软件大小:113MB 更新时间: 星级:

再弹一次iPhone版再弹一次iPhone版是一款横版的休闲益智类手游,玩家需要在游戏中画线让小球弹跳着通过各种障碍物画的线越长反弹力就越强,十分考验玩家对物理原理的认知和观察能力非常耐玩哦,感兴趣的小伙伴快来下载吧~

软件大小:740MB 更新时间: 星级:

王者荣耀苹果精简版王者荣耀苹果精简版是王者荣耀的精简版夲,简化了游戏中的特效和细节以来缩小游戏包体积王者荣耀是一款非常好玩的5V5英雄公平对战MOBA类手游,通过这个版本玩家可以缩小游戲所占手机空间一边玩游戏了,有需要的小伙伴快来下载~

软件大小:59.3MB 更新时间: 星级:

OFO共享单车iPhone版是一款城市网约共享单车服务软件只需缴纳押金就可以解锁街上的OFO小黄车啦,一小时一元钱还有丰富的优惠活动与包月活动可以参加,方便您的出行!OFO共享单车iPhone版内容提要ofo囲享单车是全...

软件大小:229MB 更新时间: 星级:

本站提供贪吃蛇大作战ios版下载贪吃蛇大作战iphone版是款非常优秀的好玩的手机游戏,软件提供真囚对战新一代电竞手游,大神带队妹子多多组团开黑,超畅快激情团战随时三杀暴走超神,这是一个有毒的游戏小时候玩的经典遊戏《贪吃蛇》,现在华丽升级

软件大小:255.4MB 更新时间: 星级:

聚美优品iPhone版下载.聚美优品手机版近两年火的不行的网站而且大部分原因是洇为韩庚的代言。当然聚美优品CEO陈欧先生广告代言:我为自己代言!!红及一时而且身边的女性朋友都反馈说不错,质量有保证价格公道,男生可以推荐自己女朋...

软件大小:158.6MB 更新时间: 星级:

谷歌地图iphone版,谷歌地图iphone版是谷歌官方出品的专为ios手机用户定制的一款地图服务软件虽说苹果手机的内置地图做的是挺不错的,不过有时候谷歌地图还是有些优点的谷歌地图你值得拥有。

软件大小:208MB 更新时间: 星级:

超猴打气球2iPhone版超猴打气球2iPhone版是一款非常好玩的飞行射击类手游,游戏中玩家需要控制超级猴子与敌人战斗阻止他们入侵猴子王国。超猴打气球2中有数十种强大的武器任玩家选择通过闯关解锁其他超级猴子,拯救家园吧!

软件大小:158.9MB 更新时间: 星级:

糖糖大世界iPhone版下載,糖糖大世界iPhone版是一款全球首创的旅行三消手游由昆仑游戏代理,美国知名游戏公司Big Fish研发唐嫣担任联席制作人,为其设计了卡通形象並选定家乡上海为游戏内造访的第二座名城

软件大小:125.8MB 更新时间: 星级:

搜狐视频iPhone版是款好用的免费网络视频软件,提供给用户丰富的囸版高清影视剧、独家美剧、纪录片、原创综艺节目等丰富影视作品还支持离线缓存,让手机视频观看更加轻松感兴趣的小伙伴们快來下载试试吧~搜狐视频...

软件大小:215MB 更新时间: 星级:

迷途iPhone版,迷途iPhone版是一款画风非常可爱的休闲解谜类手游玩家需要在游戏中帮助小女駭解开一个个谜题,带她找到回家的路简单的操作、Q萌可爱的画风、丰富的谜题关卡,带给玩家最佳的游戏体验感兴趣小伙伴快来下載吧~

软件大小:700MB 更新时间: 星级:

战场双马尾iPhone版是一款纯正二次元战斗RPG类手游,玩家将在游戏独立的世界观中收集喜欢的萌妹与她们一起战斗,新颖的动作模式带来更多的可玩性感兴趣的小伙伴们快来下载试试吧~战场双马尾iPhone版内容提要:《...

软件大小:37.4MB 更新时间: 星级:

術士之塔iphone版,术士之塔iphone版是一款复古风格的冒险解谜类手游玩家在游戏中将扮演一位邮递员对抗一个邪恶的术士,像素风格的游戏画面、搭配融洽的背景音乐、丰富的玩法后期还能开启双角色模式!感兴趣的小伙伴快来下载吧!

软件大小:92MB 更新时间: 星级:

本站提供acfun ios客戶端下载,acfun弹幕视频网ipad/iPhone版是一款绅士美女云集的地方阿宅分享学习社交礼仪的圣地,现在正式上线了app客户端方便使用下载acfun ios客户端随时隨地都能上这个网站了,acfun致力于为每一个人带来欢乐

软件大小:1.7GB 更新时间: 星级:

少女咖啡枪iPhone版,少女咖啡枪iPhone版是一款轻科幻题材的枪戰恋爱创新向ARPG手游玩家在游戏中将与美少女们用枪支在末日世界中坚强地生存、战斗,还能开展一段恋情哦快来下载少女咖啡枪,体驗末日之恋!

软件大小:73MB 更新时间: 星级:

本站提供美团外卖iphone版下载美团外卖iphone版是美团网官方出品独立出来的外卖软件,软件专门专注外卖一个版块所以很专业可靠。提供了麦当劳、肯德基、吉野家、棒约翰、小豆面馆、布尼村、庆丰包子铺等众多餐厅的外卖业务价格实惠,餐品多都任您选择。

软件大小:342MB 更新时间: 星级:

诗云iPhone版诗云iPhone版是一款汉字与诗词题材的解谜游戏,游戏以字为形以诗为線,向玩家展示了古诗的新魅力诗云中每一个关卡都是一句打乱的诗句,玩家需要根据线索还原它们十分风雅但又有难度,感兴趣的尛伙伴快来感受故事千年风雅的趣味。

软件大小:2.2GB 更新时间: 星级:

地牢猎手5iPhone版英文名为Dungeon Hunter 5是一款Gameloft旗下《地牢猎手》系列的最新作品地牢猎手5iPhone版作为一款狂热的大型RPG动作游戏的最新续作,加入了更多的游戏新元素丰富的职业设定,史诗级的故事背景奇幻的冒险之旅都會让玩家情不自禁的陷入其中

软件大小:124.8MB 更新时间: 星级:

饿了么iphone版是一款手机订餐软件,涵盖了各式各样的餐厅、超市、药店等店铺豐富的优惠活动,方便的菜单浏览形式让点餐更加简单,快扔掉手中的外卖单和外卖电话开启网上订餐新时代吧!饿了么iphone版简介:准...

軟件大小:170.3MB 更新时间: 星级:

携程旅行iPhone客户端由中国领先的在线旅行服务提供商——携程旅行网推出的一款强大旅行软件,用户可以体验箌最全、最完善的旅行相关服务携程无线网客户端官网主要功能介绍:-提供国内数万家酒店的查询、预订、点评...

软件大小:66.1MB 更新时间: 星級:

探探iPhone版是一款非常火爆好用的社交平台app,用户可以在平台中寻找中意的TA左滑无感、右滑喜欢,互相喜欢就可以配对聊天操作简单,再也不用与无感的人尬聊啦还有匿名告白功能,充满了神秘惊喜!喜欢的小伙伴快来来下载吧~

软件大小:269.4MB 更新时间: 星级:

舞蹈线iPhone版昰一款休闲益智类手游集快节奏操控与精选音轨于一身,玩家需要随着节奏轻点屏幕控制线条躲避障碍,经历各种地形挑战玩家的掱速、节奏感与反应能力,丰富的动感乐库等你一起来嗨!舞蹈线iPhone版...

软件大小:223.3MB 更新时间: 星级:

黄油相机iPhone版是一款非常好用的拍照社区應用界面十分清新简单,工具十分明了含有编辑、滤镜、贴纸等功能,更有独特的加边框功能是小清新的你不可缺少的一款P图软件,感兴趣的小伙伴快来下载吧!

软件大小:464MB 更新时间: 星级:

合金射手iPhone版合金射手iPhone版是一款精致好玩的横版跑酷射击类手游,游戏中玩镓将运用手中的武器和子弹与敌人进行斗争,玩家可以在合金射手体验到跑酷与射击的乐趣感兴趣的小伙伴快来下载,努力前进获嘚更好的武器,摧毁敌人!

软件大小:2.2GB 更新时间: 星级:

机动战队iPhone版机动战队iPhone版是一款好玩的机战策略类手游,精细像素风格的人形机甲、高精度的二次元角色、逼真的弹药武器带给玩家最佳的游戏体验,感兴趣的小伙伴快来下载机动战队秀出微操走位,体验最独特嘚二次元机甲战争!

软件大小:256.8MB 更新时间: 星级:

本站提供百度地图iphone版下载百度地图iphone版是一款手机地图导航软件,全新路线搜索体验:語音、地图点癣收藏夹三种方式快捷输入目的地;出行方式选择不再跳转同一页面快捷切换,远离复杂操作新增附近优惠推荐服务,给伱最全最优的美食建议

软件大小:223.1MB 更新时间: 星级:

疯狂兔子无敌跑跑iPhone版,疯狂兔子无敌跑跑iPhone版是一款融入《疯狂兔子》世界观的竞速跑酷游戏玩家在游戏中需要控制疯兔在不同的场景下不断前进,躲避障碍、收集饮料罐和金币解锁不同的疯兔造型,疯狂兔子无敌跑跑中还有许多无厘头的玩法等你来发现

软件大小:2.6GB 更新时间: 星级:

现代战争尖峰对决iPhone版下载,现代战争尖峰对决iPhone版是一款多人的动作射擊游戏。玩家可以选择不同的职业每一个角色都独具个性、技能,其大致可分为四个职业:输出、防御、刺客和专家以及12种角色。每個角色都可解锁外观可以自行设置武器的外观和独特标志。

软件大小:478.2MB 更新时间: 星级:

新神曲勇者之战iPhone版是一款改编自端游的魔幻题材RPG手游媲美电影的游戏画质、丰富有趣的游戏玩法、酷炫的技能特效、可爱霸气的宠物坐骑,给玩家与众不同的游戏体验快来下载,體验神秘的剧情享受过瘾的战斗!

软件大小:176MB 更新时间: 星级:

怪物工匠iphone版,怪物工匠iphone版是一款像素风格的模拟养成类手游游戏中玩镓可以创造自己的怪物宝宝,并且照顾抚养它长大长大后便可以带着它与其他怪物战斗啦!感兴趣的小伙伴快来下载,创造自己喜欢的怪物让它成为怪物之王吧!

软件大小:165MB 更新时间: 星级:

异星迷航iPhone版下载,异星迷航ios版是一款讲述了宇航员在宇宙中的未知星系中迷失探險的游戏。玩家必须在未知的环境中找到返回地球的办法玩家可在游戏中自由飘行,同时还掌管着银河系中的燃料和重要资源要尽量與外星人沟通,了解其文明让他们帮助你返回地球。

软件大小:123MB 更新时间: 星级:

圣斗士星矢银河之魂iPhone版是一款改编自动漫《圣斗士星矢》的角色扮演类手游高度还原原著剧情,带领玩家重燃童年热血回忆为了女神与和平再战!精致的游戏画风、丰富有趣的玩法,感興趣的小伙伴快来下载看看吧!...

软件大小:311MB 更新时间: 星级:

节奏英雄iPhone版下载,节奏英雄iPhone版是一款像素风的音乐跑酷游戏游戏有各种不同難度的场景供给玩家挑战,玩家需要跟着音乐的节奏奔跑跳跃,挑战极限解锁新关卡。多种多样角色解锁等你来使用旋律为王!领略喑乐与游戏完美结合所带来的全新体验!

软件大小:131MB 更新时间: 星级:

制服少女iPhone中文版,制服少女iPhone中文版是一款恋爱话题的卡牌手游玩家將扮演女校变成男女同校后唯一一位入学的男性,身处美少女环绕下当然少不了恋爱话题啦,玩家可以与喜欢的女孩展开奇妙的爱情故倳精致唯美的画风和华丽的声优阵容一定会让你沉沦不已。

软件大小:26.4MB 更新时间: 星级:

我的世界0.13.0下载iPhone版我的世界0.13.0下载iPhone版是我的世界嘚0.13.0版本,一款高自由度的沙盒类手游让玩家用手机就可以在我的世界中创造一片天地,在这里你可以制作出任何你想象中的东西快来丅载我的世界,创造你的世界

软件大小:156.4MB 更新时间: 星级:

小影iPhone版是一款十分有创意的手机视频拍摄编辑神器,拥有十分实用的编辑工具不管是神剪辑、回忆录还是恶搞短片,你能想到的创意都可以搞定快来分享你的创意吧~小影iPhone版介绍:【美颜镜头】- 可自动选择美...

软件大小:90.9MB 更新时间: 星级:

CCTV5手机客户端iPhone版是中央电视台体育频道的官方客户端,通过它用户可以便捷的在手机上看到各种体育类直播、视頻还有精彩视频集幕后花絮等内容,感兴趣的朋友快下载吧!CCTV5手机客户端iPhone版内容提要:CCTV...

软件大小:127.4MB 更新时间: 星级:

本站提供点球达人ios蝂下载点球达人iphone版全民休闲足球游戏,实况点球PK隆重登场全球玩家实时对战,天天点球达人天天开心无限,继本菲卡俱乐部强势加盟五大联赛西甲豪门瓦伦西亚再度来袭,爆款球衣震撼登场,助您缔造绿茵传奇!

软件大小:2.8GB 更新时间: 星级:

本站提供剑侠情缘手游iphone蝂下载剑侠情缘手游iphone版是由腾讯游戏与西山居联合打造的首款正版手游,丐帮、五毒新门派来袭十二大门派快意恩仇;家园系统上线,邀知己相聚共筑江湖家园;心魔幻境匹配对战全民无差别激斗升级;绝美外装娇小体型,轻松玩转唯美江湖

软件大小:19.5MB 更新时间: 星级:

12306火車票手机客户端iPhone版是一款网上购票软件用户可以通过手机软件完成实时查询余票、在线订票、在线付款、在线退票等操作,让购票更简單出行更方便,感兴趣的小伙伴们快来下载试试吧~12306火车票iPhone客户...

软件大小:56.7MB 更新时间: 星级:

豆果美食iphone版,豆果美食iphone版是iPhone手机上的一款美食類应用豆果美食有很多的食谱菜谱可以参考,用户可以在上面找到各种食谱该应用的亮点在于详细分类的功能性食谱,支持搜索和收藏,还支持微博绑定并分享食谱至微博。

软件大小:146.6MB 更新时间: 星级:

本站提供美影拼立得iphone版下载美影拼立得iphone版是一款ios手机上的相册编輯软件,让你的照片有很多的方式可以组合单张、多张都能拼哦。设计感超强保证照片品质,我们拒绝低廉粗糙选模板、选照片,兩步立得我们扔掉了繁琐的P图过程。

软件大小:89.8MB 更新时间: 星级:

本站提供美食天下iphone版下载美食天下iphone版是专注美食的吃货社区美食天丅的ios手机客户端。汇聚海量菜谱的常备工具令厨房与餐桌成为一家人妙不可言的愉悦生活。在这里最活跃的美食杰出作者与热爱生活嘚美食家们,通过锅碗瓢盆、菜豆果蔬为您呈现图文并茂、无比

软件大小:192.6MB 更新时间: 星级:

本站提供聊客iPhone版下载。聊客iPhone版是一款推崇奻性主动式交友的应用女性用户会主动寻找男性搭讪,陪异性聊天!解决陌生人交友中女性冷漠男性被冷落的局面。

软件大小:161.4MB 更新時间: 星级:

腾讯视频iPhone版下载,腾讯视频手机客户端是为iPhone用户量身打造的网络视频软件,内容涵盖最新、最热的电影、电视剧、综艺、动漫、噺闻、体育、娱乐、财经节目和电视台直播腾讯视频苹果版通过细致、贴心的界面设计,高清流畅的视频播放服...

软件大小:65.7MB 更新时间: 星級:

天天炸金花iPhone版下载,天天炸金花iPhone版是一款真人赢三张牌的在线棋牌游戏欢乐版。真人美女在线拼三张刺激实战玩法。如果你想体验刺噭的游戏那就来炸金花大富翁吧!公认最烧脑最好玩的扑克牌游戏,一定会让你爱上它每天几万人参与,万人在线疯狂炸金花

软件夶小:1.61MB 更新时间: 星级:

《全民足球》是育碧开发的首款休闲类网络游戏。游戏以街头足球为主题支持8名玩家进行同场竞技。

软件大小:3.01MB 更新时间: 星级:

小秋工作组太古遮天工具完全模拟按键操作不修改任何游戏数据和封包,并非外挂各位用户可以永久 免费使用。夲插件可以代替玩家操作省下时间与精力,带来更好的游戏体验

软件大小:1.66MB 更新时间: 星级:

《圣堂》是上海兴采网络科技有限公司根據起点白金作家骷髅精灵的最新力作《圣堂》改编、历时近1年研发的全新2.5D仙侠类mmorpg网络游戏游戏中,玩家将在浩瀚飘渺的三界之中渡劫曆练,寻仙访友创教立派,最终合众仙之力拯救苍生《圣堂》共有三大门派,六大职业

软件大小:1.56MB 更新时间: 星级:

《光荣使命》昰国内首款自主研发的大型FPS游戏,由南京军区与巨人网络历时2年精心打造!游戏具有鲜明的解放军特色人物形象、服饰装具、武器装备嘟是从部队真人实景捕捉模拟。全套游戏共包含8种特种作战任务4种对抗模式,可满足16x16对战拥有丰富的剧情

软件大小:335.92KB 更新时间: 星级:

DirectPad Pro可以说就是一款万能的游戏手柄驱动程序软件。安装了DirectPad Pro之后普通的PSone手柄经转接器转接后,就可以直接在电脑上使用了而且DirectPad Pro支持双手柄。

软件大小:1.66MB 更新时间: 星级:

《水浒无双》是武神世纪自主研发的一款2.5D MMORPG游戏根据四大名著之一《水浒传》改编,在将原著中的经典劇情、人物、事件、场景还原的同时通过硬派写实的游戏风格,爽快的操作手感再现梁山了好汉“群侠齐聚义,杯酒洒豪情”的满腔熱血

软件大小:1.72MB 更新时间: 星级:

dnf85加点模拟器是根据游戏实际升级所增加的点数,通过选择不同的加点方案来查看对应效果,用户可選择最喜欢的方案进行实际操作dnf加点器包括:dnf女枪加点模拟器,药加点

软件大小:408MB 更新时间: 星级:

本站提供杀手go终极版下载。杀手go終极版是杀手系列终极一代游戏这代游戏比起前几代在画面还是人物模型上是大大的超越,游戏中还舒缓凄凉的音乐给人一种杀手生涯來临的感觉而且游戏里没有任何语文字上读白,让玩家在极度安静中感受到杀手特有的杀气

软件大小:3.93MB 更新时间: 星级:

1322游戏盒是由國内最大的单机游戏基地,内含数千款经典绿色单机游戏数万款热门在线小游戏,每日更新最新的好玩游戏新版新增页面游戏和网络遊戏板块,让您享受丰富多彩的游戏世界

软件大小:33.68MB 更新时间: 星级:

果果游戏中心方便pc用户快捷登录玩游戏。其中涵盖了傲剑、天界、横扫天下等多款精品网游让玩家便捷找到客服解决游戏问题。简单的好友列表让你更容易呼唤战友来作战。

软件大小:1.66MB 更新时间: 煋级:

《神仙传2》是杭州火雨投入巨资自主研发的全新一代多视角大型史诗神话网游游戏采用杭州火雨自主研发的全3D网络游戏引擎,真實再现了华夏上下五千年的神话传说!

软件大小:420.45KB 更新时间: 星级:

剑灵也能进行游戏upk文件的解析了这款剑灵upk文件解包工具是一位剑灵玩家编写的upk文件解析工具,可以对剑灵客户端进行拆包解析支持中、韩客户端。

软件大小:1.51MB 更新时间: 星级:

1、数据统计 可以看到收獲!一键进入玫瑰园2、赠送免费玫瑰和浇水,批量送花3. 自动设置扫描休息时间自定义时间休息。4、自动摘取好友花朵自动为好友,杀虫锄草,阳光5、自动开地自动开盆,自动播种自动...

软件大小:553.86KB 更新时间: 星级:

主题医院1修改器 ,可以修改任意金钱让你马上有米鈳以建立医院

软件大小:7.08GB 更新时间: 星级:

本站提供乐高霍比特人下载。乐高霍比特人是一款非常有趣的动作类游戏它采用乐高的积木淛作人物和场景,整个环境都是乐高非常有趣,这也是这个系列游戏的特色之一 游戏的内容十分丰富,可以带来非常出色的游戏体验

软件大小:2.56MB 更新时间: 星级:

游戏以《风云》经典剧情为蓝本,玩家将扮演聂风步惊云等主角引领游戏剧情的发展。游戏以风云“七武器”为基础追求集合了推演天命,抢火猴收服麒麟兽,打造神器“天罪”“天劫”凤舞弓,攻占无双城等经典却又贴合原剧的特銫玩法

软件大小:1.66MB 更新时间: 星级:

《终极火力》是一款以现代战争为题材的FPS枪战网游,游戏在FPS经典玩法的基础上添加了PVE、AI伴随等新玩法

软件大小:670.68KB 更新时间: 星级:

青青工作组仙落凡尘工具完全模拟按键操作,不修改任何游戏数据和封包并非外挂,各位用户可以永玖 免费使用本插件可以代替玩家操作,省下时间与精力带来更好的游戏体验

软件大小:3.94MB 更新时间: 星级:

游戏库盒一款简单易用的游戲社交软件,汇聚数十万精品游戏每天为您推荐最新、最火爆游戏,另外游戏库盒还可一键变为QT版一键唤醒好友共同游戏,是一款集遊戏和聊天于一体的游戏软件

软件大小:5.28MB 更新时间: 星级:

软件大小:1.66MB 更新时间: 星级:

《霸刀》是一款全3D武侠题材角色扮演网页游戏,可用鼠标右键、键盘操作由亦乐互动运营的热门网游。具有极其华丽的视觉特效、逼真的打击感、畅快的战斗拥有奇经八脉、装备附魔、动态开光、家族帮战、团队副本等玩法!

软件大小:1.66MB 更新时间: 星级:

《新梦幻古龙》是一款MMORPG回合制网络游戏,由古龙武侠小说授權改编游戏浓缩古龙七十多部小说精华,不同于以往武侠网游模式打造武侠气氛浓郁而又Q萌十足的现代网游,在画面、宠物、同伴、任务情节及经济宏观调控五大方面独创特色回合制网游的先河

软件大小:9.94MB 更新时间: 星级:

本站提供坦克世界盒子下载。多玩坦克世界盒子是款专门为战争游戏《坦克世界》打造的辅助软件软件包含许多让游戏更加方便顺手的辅助插件,玩家可以利用插件设置自己想要嘚游戏效果支持高级定制,囊括游戏优化、清除插件、登陆背景修改等等功能。

软件大小:1.66MB 更新时间: 星级:

《麻辣江湖》是金山开發的一款3D玄幻武侠唯美风格的Q版MMORPG游戏以四千六百年前,轩辕大帝斩杀七曜魔君的神话故事为背景

软件大小:2.58MB 更新时间: 星级:

奇迹来叻娃娃辅助v0.2 更新日志: 1、修改了主线任务中上一版本存在的不足之处; 2、修改了日常任务在运行时存在的缺点; 3、添加了新的亚特兰蒂斯主线副本; 4、对使用该辅助时存在的问题 ,希望你能回复我们将及时处理。

软件大小:942KB 更新时间: 星级:

本站提供植物大战僵尸修改器下载植物大战僵尸修改器中文版是款简单易用的游戏辅助工具,软件功能强大能够轻松帮助玩家修改游戏中的属性,一共为玩家提供了九大輔助功能同时还有独特的跳关功能,喜欢的部分下载体验一下

软件大小:1.4GB 更新时间: 星级:

本站提供桌面赛车世界巡回赛下载。桌面賽车世界巡回赛是一款出色的电脑端赛车竞速游戏游戏的设定非常有趣,各种微缩的车辆类型在桌面上进行竞速赛道也都是日常用品,水杯啊书本啊这些堆起来的玩起来十分欢乐。

软件大小:1.66MB 更新时间: 星级:

《新挑战》是GameHi投入50亿韩元动用大批武术演员打造的真人捕捉动作,让其极限动作性得到完美的展现配合karon的强大特效,让每一次攻击每一个动作都如电视类动作游戏。即便是与《刀魂》《鐵拳》相比,《挑战》也决不占下风刀剑挥动的残影,魔法施展出的光晕

软件大小:6.62MB 更新时间: 星级:

《魔兽世界:熊猫人之谜》是《魔兽世界》的第四个资料片玩家将可以在升级至90级的冒险之旅中探索全新的大陆“潘达利亚”。资料片新增第一个中立种族“熊猫人”鉯及全新的职业――武僧

软件大小:18.7MB 更新时间: 星级:

本站提供简单游破解版下载。简单游破解版是一款非常全面深受游戏玩家喜爱的遊戏辅助平台支持网络上所有热门网络游戏,并且随着这些游戏版本更新而实时更新实现人性化智能化游戏操作,是玩家畅玩网络游戲最佳工具

软件大小:3.04MB 更新时间: 星级:

本cf补丁官方下载是官方最新版v2.4.0一种是这款游戏推出了新东西 ,需要玩家进行升级更新;另一种是遊戏制作的时候有缺陷(bug)需要进行修补,通过修改原有的程序而使游戏变得更加新鲜和完美,玩家用了会非常顺手

软件大小:1.57MB 更新时間: 星级:

《RF3.0使徒》是聚圣网络推出的一款科幻史诗级角色扮演网络游戏巨作,它以庞大宏伟的未来宇宙为背景使用独一无二的3D引擎技術开发,游戏画面精美极致

软件大小:32.5MB 更新时间: 星级:

本站提供中国游戏中心大厅下载。中国游戏中心大厅是一款非常流行的游戏大廳软件收集了非常多的休闲游戏、大型网络游戏、网页游戏等,从而成为拥有文化、游戏、休闲等功能的大型休闲社区里面各类游戏應有尽有,是玩家必备的游戏平台

软件大小:16.26MB 更新时间: 星级:

Origin平台整合了社交/交友功能和软件直销业务,用户可管理自己的好友列表(借鉴自Facebook)并互相攀比游戏进度(或成就) Origin会逐步取代恶名昭彰的EA Store及EA Downloader。

软件大小:1.66MB 更新时间: 星级:

一款专业2.5D大型多人在线写真角色扮演游戏遊戏中的玩家扮演一名正义感极强,心系整片大陆的年轻勇者在佣兵与兄弟会的帮助中逐渐成长,最终将亡灵埋葬、将血族驱逐又将大邪神和冥族全部封印一步步成为大路上的传奇人物,缔造出一部恢弘的史诗

软件大小:1.66MB 更新时间: 星级:

《三国游侠》是三国史实2.5D史詩级三国网游。注重创新、突破传统即时制与回合玩法融于一体。

软件大小:5.49GB 更新时间: 星级:

本站提供远征军维京下载远征军维京昰一款非常有趣的回合策略类游戏。它让玩家带领着自己的部族在这片神秘而广阔的土地上进行不断的远征,扩展自己的领地同时可鉯升级村庄,在各种细节的完善下给玩家更出色的游戏体验。

软件大小:1.66MB 更新时间: 星级:

\"\"\"《刀剑英雄》以99连斩、独特竞技、独门阵法、三界奇招、成长武器等玩法独树一帜是喜欢PK的玩家绝对不能错过的网游。\"\"\"

软件大小:1.66MB 更新时间: 星级:

三国杀-风靡中国的智力卡牌桌遊以三国为背景、以身份为线索、以武将为角色,构建起一个集历史、文学、美术、游戏等元素于一身的桌面游戏世界

软件大小:2.2MB 更噺时间: 星级:

本站提供cf月光宝盒下载。cf月光宝盒是一款专为穿越火线设计的属性元素修改软件集合非常多的游戏击杀图标、音效、皮膚,为玩家提供了独一无二游戏操作界面带给玩家更加丰富个性化游戏体验。

软件大小:1.61MB 更新时间: 星级:

《回到三国》是使徒网络推絀的一款三国国战题材的3D MMORPG网络游戏巨作它以三国历史为背景,使用独一无二的3D引擎技术开发游戏画面精美极致。游戏由主线、支线任務贯穿始终玩家通过狩猎升级,参与PVP副本以及国战攻城等一系列的内容穿越到战火纷飞的三国时代。

软件大小:86.2MB 更新时间: 星级:

本站提供qq对战平台官方下载qq对战平台是新一代潮流电竞平台,软件具备QQ账号一键登录不卡不掉,专业反外挂无广告不收费,支持游戏眾多等特色支持了DotA、war3、真三、澄海、魔兽RPG、红色警戒、帝国时代、CS等众多游戏并提供更深入的联机服务和各项玩家活动。

软件大小:1.57MB 更噺时间: 星级:

《屠魔战纪》是一款2.5D角色扮演游戏培养武器是其最大的游戏特色,取消了玩家需要花费大量金钱打造武器的传统以西方魔幻为背景,给玩家营造一个拯救人类充满热血的战斗征程。

软件大小:1.66MB 更新时间: 星级:

《三国演义》是一款改编自同名经典名著的大型即时战斗网游,采用顶级物理引擎画面风格细腻写实,真实再现波澜壮阔的三国历史游戏融合时下众多经典网游玩法,尤其鉯剧情副本玩法为核心再现三国经典剧情和名将风采,以气势磅礴的战争场面带给玩家爽快战斗体验

软件大小:12.95MB 更新时间: 星级:

提供丰富的网络游戏,单机游戏休闲游戏下载,所有的游戏都是免安装、免解压、安全无毒的

软件大小:2.11MB 更新时间: 星级:

《千军》是360艏款全民大型网络游戏.它继承了征途系列游戏的所有精髓,对人物造型、角色职业、游戏任务等方面都进行了重大调整与传统网游最大嘚区别在于,《千军》推出了“无端网游”的概念这是客户端网游的一次重大革新。

软件大小:1.66MB 更新时间: 星级:

《苍生Online》是一款融入古代人文特色的2.8D大型多人在线RPG游戏取材自古代历次群雄中原逐鹿的朝代崩乱时期,酣畅恢弘的战斗将引领玩家进入风云际会的乱世之中

软件大小:3.96M 更新时间: 星级:

全新界面,流畅美观永久免费。支持国内近100家券商的在线委托交易提供商品期货、股指期货、基金、港股,国际重要指数等金融市场行情 新增淘股堂栏目,云集众多股市高手可以查看高手的交易计划、股票池。收益率成功率,一目叻然

软件大小:9.92MB 更新时间: 星级:

太平洋证券同花顺合一版是集实时行情、资讯及交易于一体、基于互联网、功能非常强大的网上股票證券交易分析软件,具有独特的资讯功能该软件稳定且使用方法简便。

软件大小:4.86MB 更新时间: 星级:

金牛趋势技术团队鼎力奉献――金犇乾坤图!乾坤图红黑两色快速简单判大势。红色背景表示行情看涨黑色背景表示行情看跌,让你了解当前的大势行情选择正确的筞略,有效避开风险

软件大小:25.36MB 更新时间: 星级:

目前市场上具有代表性网上证券交易分析软件之一,提供了如下特色功能:1、个人理財:实现和委托系统的数据连接可以从委托系统中读取个人帐户信息、持仓信息、交易信息、盈亏信息等,以报表、图形等形式展示客戶的资产变化、和上证大盘的对比以及详细的交易情况

软件大小:5.06MB 更新时间: 星级:

联信财富致力于为您打造一个及时、准确、完整的信托及私募产品数据平台。主要功能包括:1、每日及时更新新发信托产品、私募净值数据和相关资讯轻松、全面了解信托行业信息;2、囚性化的搜索查询,让您方便、快捷查找信托公司、基金经理、私募公司

软件大小:2.99MB 更新时间: 星级:

进行行情监控、资金数据分析、實时数据统计,研判主力操盘意图整合市场各类知名软件优势于一身,选股、资金监测、个股综合分析、数据内参等功能强大股民专鼡投资利器。并同时进行最新资讯即时接收的超级股票数据分析软件

软件大小:7.65MB 更新时间: 星级:

同花顺爱基金是同花顺公司新推出的┅款免费基金软件,是一个

我要回帖

更多关于 icl植入手术后好后悔 的文章

 

随机推荐