EIP编程
1. 数据寄存器是什么意思
这4 个16 位寄存器又可分别分成高8 位(AH、BH、CH、DH)和低8 位(AL、BL、CL、DL)。因此它们既可作为4 个16 位数据寄存器使用,也可作为8 个8 位数据寄存器使用,在编程时可存放源操作数、目的操作数或运算结果。数据寄存器是存放操作数、运算结果和运算的中间结果,以减少访问存储器的次数,或者存放从存储器读取的数据以及写入存储器的数据的寄存器。 8086 有 14 个 16 位寄存器,这 14 个寄存器按其用途可分为(1)通用寄存器、 (2)指令指针、(3)标志寄存器和(4)段寄存器等4 类。(1)通用寄存器有8 个,又可以分成2 组,一组是数据寄存器(4 个),另一组是指针寄存器及变址寄存器(4 个).顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。 数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O 指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引; CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递。他们的特点是,这4 个16 位的寄存器可以分为高8 位: AH,BH,CH,DH.以及低八位:AL,BL,CL,DL。这2 组8 位寄存器可以分别寻址,并单独使用。另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS 配合使用,可指向目前的堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。这4 个16 位寄存器只能按16 位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。(2)指令指针IP(Instruction Pointer)指令指针IP 是一个16 位专用寄存器,它指向当前需要取出的指令字节,当BIU 从内存中取出一个指令字节后,IP 就自动加1,指向下一个指令字节。注意,IP 指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址(EA, Effective Address)。(3)标志寄存器FR(Flag Register)8086 有一个18 位的标志寄存器FR,在FR 中有意义的有9 位,其中6 位是状态位,3 位是控制位。 OF:溢出标志位OF 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF 的值被置为1,否则, OF 的值被清为0。DF:方向标志DF 位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。IF:中断允许标志IF 位用来决定CPU 是否响应CPU 外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU 都必须响应CPU 外部的不可屏蔽中断所发出的中断请求,以及CPU 内部产生的中断请求。具体规定如下:(1)、当IF=1 时,CPU 可以响应CPU 外部的可屏蔽中断发出的中断请求;(2)、当 IF=0 时,CPU 不响应 CPU 外部的可屏蔽中断发出的中断请求。TF:跟踪标志TF。该标志可用于程序调试。TF 标志没有专门的指令来设置或清楚。 (1)如果 TF=1,则 CPU 处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU 内各个寄存器的当前值及CPU 将要执行的下一条指令。(2)如果 TF=0,则处于连续工作模式。SF:符号标志SF 用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以, SF 也就反映运算结果的正负号。运算结果为正数时,SF 的值为0,否则其值为 1。当运算结果没有产生溢出时,运算结果等于逻辑结果(即因该得到的正确的结果),此时SF 表示的是逻辑结果的正负,当运算结果产生溢出时,运算结果不等于逻辑结果,此时的SF 值所表示的正负情况与逻辑结果相反,即:SF=0 时,逻辑结果为负,SF=1 时,逻辑结果为正。ZF:零标志ZF 用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0 时,可使用此标志位。AF:下列情况下,辅助进位标志AF 的值被置为 1,否则其值为 0:(1)、在字操作时,发生低字节向高字节进位或借位时;(2)、在字节操作时,发生低4 位向高4 位进位或借位时。PF:奇偶标志PF 用于反映运算结果中"1"的个数的奇偶性。如果"1"的个数为偶数,则PF 的值为1,否则其值为0。CF:进位标志CF 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。(4)段寄存器(Segment Register)为了运用所有的内存空间,8086 设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS 固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K 的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K 内,这就是COM 文件不得大于64K 的原因。8086 以内存做为战场,用寄存器做为军事基地,以加速工作。以上是 8086 寄存器的整体概况, 自80386 开始,PC 进入32bit 时代,其寻址方式,寄存器大小,功能等都发生了变化。===以下是80386 的寄存器的一些资料==寄存器都是32-bits 宽。A、通用寄存器下面介绍通用寄存器及其习惯用法。顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针 (此时,DS 作为段寄存器或选择器)EBX:通用寄存器。通常作为内存偏移指针使用(相对于 EAX、ECX、EDX),DS 是默认的段寄存器或选择器。在保护模式中,同样可以起这个作用。ECX:通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS 作为寄存器或段选择器)。EDX:通用寄存器。在某些运算中作为 EAX 的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS 作为段寄存器或选择器)。同AX 分为AH&AL 一样,上述寄存器包括对应的16-bit 分组和8-bit 分组。B、用作内存指针的特殊寄存器ESI:通常在内存操作指令中作为"源地址指针"使用。当然,ESI 可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS 是默认段寄存器或选择器。EDI:通常在内存操作指令中作为"目的地址指针"使用。当然, EDI 也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS 是默认段寄存器或选择器。EBP:这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造'堆栈帧'来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS 是它的默认段寄存器或选择器。注意,这三个寄存器没有对应的8-bit 分组。换言之,你可以通过SI、DI、BP 作为别名访问他们的低16 位,却没有办法直接访问他们的低8 位。C、段选择器:实模式下的段寄存器到保护模式下摇身一变就成了选择器。不同的是,实模式下的"段寄存器"是16-bit 的,而保护模式下的选择器是32-bit 的。CS 代码段,或代码选择器。同IP 寄存器(稍后介绍)一同指向当前正在执行的那个地址。处理器执行时从这个寄存器指向的段(实模式)或内存(保护模式)中获取指令。除了跳转或其他分支指令之外,你无法修改这个寄存器的内容。DS 数据段,或数据选择器。这个寄存器的低16 bit 连同ESI 一同指向的指令将要处理的内存。同时,所有的内存操作指令默认情况下都用它指定操作段(实模式)或内存 (作为选择器,在保护模式。这个寄存器可以被装入任意数值,然而在这么做的时候需要小心一些。方法是,首先把数据送给AX,然后再把它从AX 传送给 DS(当然,也可以通过堆栈来做).ES 附加段,或附加选择器。这个寄存器的低 16 bit 连同EDI 一同指向的指令将要处理的内存。同样的,这个寄存器可以被装入任意数值,方法和DS 类似。FS F 段或F 选择器(推测F 可能是Free?)。可以用这个寄存器作为默认段寄存器或选择器的一个替代品。它可以被装入任何数值,方法和DS 类似。GS G 段或G 选择器(G 的意义和F 一样,没有在Intel 的文档中解释)。它和FS 几乎完全一样。SS 堆栈段或堆栈选择器。这个寄存器的低16 bit 连同ESP 一同指向下一次堆栈操作(push 和pop)所要使用的堆栈地址。这个寄存器也可以被装入任意数值,你可以通过入栈和出栈操作来给他赋值,不过由于堆栈对于很多操作有很重要的意义,因此,不正确的修改有可能造成对堆栈的破坏。*注意一定不要在初学汇编的阶段把这些寄存器弄混。他们非常重要,而一旦你掌握了他们,你就可以对他们做任意的操作了。段寄存器,或选择器,在没有指定的情况下都是使用默认的那个。这句话在现在看来可能有点稀里糊涂,不过你很快就会在后面知道如何去做。指令指针寄存器:EIP 这个寄存器非常的重要。这是一个32 位宽的寄存器,同CS 一同指向即将执行的那条指令的地址。不能够直接修改这个寄存器的值,修改它的唯一方法是跳转或分支指令。(CS 是默认的段或选择器)上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能没有听说过它们。(都是32 位宽):CR0,CR2,CR3(控制寄存器)。举一个例子,CR0 的作用是切换实模式和保护模式。还有其他一些寄存器,D0,D1,D2,D3,D6 和D7(调试寄存器)。他们可以作为调试器的硬件支持来设置条件断点。TR3,TR4,TR5,TR6 和TR?寄存器(测试寄存器)用于某些条件测试。
2. MRP是什么
物料需求计划(MRP)
企业怎样才能在规定的时间,规定的地点,按照规定的数量得到真正需要的物料,换句话说,就是库存管理怎样才能符合生产计划的要求,这是物料需求计划所解决的。MRP起初出现在美国,并由美国生产与库存管理协会倡导而发展起来的。
MRP是一种以计算机为基础的编制生产与实行控制的系统,它不仅是一种新的计划管理方法,而且也是一种新的组织生产方式。MRP的出现和发展,引起了生产管理理论和实践的变革。MRP是根据总生产进度计划中规定的最终产品的交货日期,规定必须完成各项作业的时间,编制所有较低层次零部件的生产进度计划,对外计划各种零部件的采购时间与数量,对内确定生产部门应进行加工生产的时间和数量。一旦作业不能按计划完成时,MRP系统可以对采购和生产进度的时间和数量加以调整,使各项作业的优先顺序符合实际情况。
一、MRP的主要目标
MRP系统的主要目标是控制企业的库存水平,确定产品的生产优先顺序,满足交货期的要求,使生产运行的效率达到最高。具体可归纳为以下几点:
①采购恰当数量和品种的零部件.选择恰当的时间订货,尽可能维持最低的库存水平。
②及时取得生产所需的各种原材料及零部件,保证按时供应用户所需产品。
③保持计划系统负荷的均衡。
④规则制造活动、采购活动以及产品的交货日期。
ERP同MRPⅡ的区别是什么呢?ERP是由美国加特纳公司(Gartner Group Inc.)在90年代初首先提出的,那时的ERP概念的报告,还只是根据计算机技术的发展和供需链管理,推论各类制造业在信息时代管理信息系统的发展趋势和变革;当时,Internet的应用还没有广泛普及。随着实践和发展,E RP至今已有了更深的内涵,概括起来主要有三方面特点,也是ERP同MRPⅡ的主要区别:
1. ERP是一个面向供需链管理(Supply Chain Management)的管理信息集成。ERP除了传统MRPⅡ系统的制造、供销、财务功能外,在功能上还增加了支持物料流通体系的运输管理、仓库管理(供需链上供、产、需各个环节之间都有运输和仓储的管理问题);支持在线分析处理(Online Analytical Processing,OLAP)、售后服务及质量反馈,实时准确地掌握市场需求的脉搏;支持生产保障体系的质量管理、实验室管理、设备维修和备品备件管理;支持跨国经营的多国家地区、
多工厂、多语种、多币制需求;支持多种生产类型或混合型制造企业,汇合了离散型生产、流水作业生产和流程型生产的特点;支持远程通信、Web / Internet / Intranet / Extranet、电子商务(E-commerce、E-business)、电子数据交换(EDI);支持工作流(业务流程)动态模型变化与信息处理程序命令的集成。此外,还支持企业资本运行和投资管理、各种法规及标准管理等。事实上,当前一些ERP软件的功能已经远远超出了制造业的应用范围,成为一种适应性强、具有广泛应用意义的企业管理信息系统。但是,制造业仍然是ERP系统的基本应用对象。
2. 采用计算机和网络通信技术的最新成就。网络通信技术的应用是ERP同MRPⅡ的又一个主要区别。ERP系统除了已经普遍采用的诸如图形用户界面技术(GUI)、SQL结构化查询语言、关系数据库管理系统(RDBMS)、面向对象技术(OOT)、第四代语言/计算机辅助软件工程、客户机/服务器和分布式数据处理系统等等技术之外,还要实现更为开放的不同平台互操作,采用适用于网络技术的编程软件,加强了用户自定义的灵活性和可配置性功能,以适应不同行业用户的需要。网络通信技术的应用,使ERP系统得以实现供需链管理的信息集成。
3. ERP系统同企业业务流程重组(Business Process Reengineering,简称BPR)是密切相关的。信息技术的发展加快了信息传递速度和实时性,扩大了业务的覆盖面和信息的交换量,为企业进行信息的实时处理、作出相应的决策提供了极其有利的条件。为了使企业的业务流程能够预见并响应环境的变化,企业的内外业务流程必须保持信息的敏捷通畅。正如局限于企业内部的信息系统是不可能实时掌握瞬息万变的全球市场动态一样,多层次臃肿的组织机构也必然无法迅速实时地对市场动态变化做出有效的反应。因此,为了提高企业供需链管理的竞争优势,必然会带来企业业务流程、信息流程和组织机构的改革。这个改革,已不限于企业内部,而是把供需链上的供需双方合作伙伴包罗进来,系统考虑整个供需链的业务流程。ERP系统应用程序使用的技术和操作必须能够随着企业业务流程的变化而相应地调整。只有这样,才能把传统MRPⅡ系统对环境变化的"应变性(Active)"上升为ERP系统通过网络信息对内外环境变化的"能动性(Proactive)"。BPR的概念和应用已经从企业内部扩展到企业与需求市场和供应市场整个供需链的业务流程和组织机构的重组。
ERP侧重于各种管理信息的集成,而CIMS(计算机集成制造系统)侧重于技术信息的集成,它们之间在内容上有重叠但又是互补的关系。制造业是否实现ERP系统,什么时候实现,取决于企业的性质、规模以及发展和经营战略的需要。但是不论如何,都应从ERP的高度来进行企业信息化建设的长远规划。作为制造业信息化建设的第一步,从实施MRPⅡ入手,仍然是绝大多数企业必要和可行的方案。
3. 多线程编程的原理,请围绕汇编来说
多线程主要是在80286以及以上的处理器中的功能,最早的32位多线程是80386,看了你另外的帖子,你好象懂点汇编语言,不知道你懂不懂80386汇编,他们的指令形式差不多,区别就在于工作机制和32位.如何你想搞多线程,首先要会386下的汇编,比起8086处理器,它了许多功能,如:分页机制(虚拟存储器),多线程等..还有很多功能,至于它多线程的工作机制主要是内存查表的方法,将所有程序的地址段地址和偏移地址放入GDT表和IDT表中,再用时钟频率的中断来不断读取这张表到cs:eip寄存器中和将cs:eip内容保存如这样表,就达到了交换代码地址,当然这当中还牵涉到很徐徐多多的概念,比如各个寄存器的保存,代码段的保护,各种控制门,描述符,和cpu内的各种寄存器保存表的地址,这是整整一本书的概念,建议起看扬季文的书叫做8086汇编语言程序设计,上半本书是讲8086,是基础,下半本书是80386是386的工作机制和原理和汇编方法,我在这里就引导你一下
可以说8086和80386是有很大区别的,努力 推荐你一个群 简单bios和内核研究群,67286087
4. EIP系统可以在哪里下载我想学,懂得的请进...!
https://eip.ilc.e.tw/EIPSystem/system.htm
本系统建议使用 IE V6.0 SP1 或 Mozilla。
下载〔IE V6.0 SP1 完整安装版〕。
下载〔Mozilla V1.6 中文版〕
本系统使用 java Applet 选单
若您的浏览器不支援 Java 请下载安装 Java RunTIme
IE 版本请下载〔IE Java VM 〕
Mozilla 请下载 〔Sun Java RunTime〕
Linux使用者相关设定请参考〔自由软体交流网〕
5. 请解释下寄存器的含义,谢谢。
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。 4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。
寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、 除、输入/输出等操作,使用频率很高; 寄存器EBX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器ECX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数; 寄存器EDX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。
2、变址寄存器 32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。
寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。
3、指针寄存器其低16位对应先前CPU中的BP和SP,对低16位数据的存取,不影响高16位的数据。 32位CPU有2个32位通用寄存器EBP和ESP。它们主要用于访问堆栈内的存储单元,并且规定: EBP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据; ESP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。
寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
4、段寄存器
段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。 CPU内部的段寄存器:
ECS——代码段寄存器(Code Segment Register),其值为代码段的段值; EDS——数据段寄存器(Data Segment Register),其值为数据段的段值; EES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值; ESS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值; EFS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值; EGS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。
在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段。
32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简单描述如下:
实方式: 前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。 保护方式: 在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”(Selector)的某个值。。
5、指令指针寄存器 32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。
指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。
6、标志寄存器
一、运算结果标志位 1、进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。
2、奇偶标志PF(Parity Flag) 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。
3、辅助进位标志AF(Auxiliary Carry Flag) 在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:
(1)、在字操作时,发生低字节向高字节进位或借位时; (2)、在字节操作时,发生低4位向高4位进位或借位时。对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。
4、零标志ZF(Zero Flag) 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
5、符号标志SF(Sign Flag) 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
6、溢出标志OF(Overflow Flag) 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。
二、状态控制标志位状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。
1、追踪标志TF(Trap Flag) 当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。
指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。
2、中断允许标志IF(Interrupt-enable Flag) 中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下: (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求; (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。 CPU的指令系统中也有专门的指令来改变标志位IF的值。
3、方向标志DF(Direction Flag) 方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。具体规定在第5.2.11节——字符串操作指令——中给出。在微机的指令系统中,还提供了专门的指令来改变标志位DF的值。
三、32位标志寄存器增加的标志位 1、I/O特权标志IOPL(I/O Privilege Level) I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。
2、嵌套任务标志NT(Nested Task) 嵌套任务标志NT用来控制中断返回指令IRET的执行。具体规定如下:
(1)、当NT=0,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的中断返回操作;
(2)、当NT=1,通过任务转换实现中断返回。
3、重启动标志RF(Restart Flag) 重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接受”调试故障,否则拒绝之。在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故障时,处理机就把它置为1。
4、虚拟8086方式标志VM(Virtual 8086 Mode) 如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。
汇编指令集合一、常用指令 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里 ) XLAT 字节查表转换. BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 ) 输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535. 3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ESDI. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FSD. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GSDI. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SSDI.
4. 标志传送指令. LAHF 标志寄存器传送,把标志装入AH. SAHF 标志寄存器传送,把AH内容装入标志寄存器. PUSHF 标志入栈. POPF 标志出栈. PUSHD 32位标志入栈. POPD 32位标志出栈.
二、算术运算指令 ADD 加法. ADC 带进位加法. INC 加 1. AAA 加法的ASCII码调整. DAA 加法的十进制调整. SUB 减法. SBB 带借位减法. DEC 减 1. NEC 求反(以 0 减之). CMP 比较.(两操作数作减法,仅修改标志位,不回送结果). AAS 减法的ASCII码调整. DAS 减法的十进制调整. MUL 无符号乘法. IMUL 整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整. DIV 无符号除法. IDIV 整数除法. 以上两条,结果回送: 商回送AL,余数回送AH, (字节运算); 或 商回送AX,余数回送DX, (字运算).
AAD 除法的ASCII码调整. CBW 字节转换为字. (把AL中字节的符号扩展到AH中去) CWD 字转换为双字. (把AX中的字的符号扩展到DX中去) CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)
三、逻辑运算指令 AND 与运算. OR 或运算. XOR 异或运算. NOT 取反. TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果). SHL 逻辑左移. SAL 算术左移.(=SHL) SHR 逻辑右移. SAR 算术右移.(=SHR) ROL 循环左移. ROR 循环右移. RCL 通过进位的循环左移. RCR 通过进位的循环右移. 以上八种移位指令,其移位次数可达255次. 移位一次时, 可直接用操作码. 如 SHL AX,1. 移位>1次时, 则由寄存器CL给出移位次数. 如 MOV CL,04 SHL AX,CL
四、串指令 DS:SI 源串段寄存器 :源串变址. ES I 目标串段寄存器:目标串变址. CX 重复次数计数器. AL/AX 扫描值. D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
Z标志 用来控制扫描或比较操作的结束. MOVS 串传送. ( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. ) CMPS 串比较. ( CMPSB 比较字符. CMPSW 比较字. ) SCAS 串扫描. 把AL或AX的内容与目标串作比较,比较结果反映在标志位. LODS 装入串. 把源串中的元素(字或字节)逐一装入AL或AX中. ( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串. 是LODS的逆过程. REP 当CX/ECX<>0时重复. REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复. REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复. REPC 当CF=1且CX/ECX<>0时重复. REPNC 当CF=0且CX/ECX<>0时重复.
五、程序转移指令 1.简单的条件转移指令 JZ(或jE) OPR---------------结果为零转移, 测试条件ZF=1 JNZ(或jNE) OPR --------------结果不为零转移,测试条件ZF=0 JS OPR----------------------结果为负转移, 测试条件SF=1 JNS OPR---------------------结果为正转移, 测试条件SF=0 JO OPR--------------------- 溢出转移, 测试条件OF= JNO OPR --------------------不溢出转移 , 测试条件SF=0 JP OPR ---------------------结果为偶转移, 测试条件SF=1 JNP OPR --------------------结果为奇转移 , 测试条件SF=0 JC OPR -------------------- 有进位转移 , 测试条件SF=1 JNC OPR --------------------无进位转移, 测试条件SF=0
2.无符号比较条件转移指令(以下指令经常是CMP OPD,OPS后面的指令根据比较结果来实现转移) JB(或JNAE) opd --------------小于或者不大于等于则转移 JNB(或JAE) opd---------------不小于或者大于等于则转移 JA(或NJBE) OPD---------------大于或者不小于等于则转移 JNA(或JBE) OPD---------------不大于或者小于等于则转移
3.带符号比较条件转移指令 JL(或JNGE) --------------小于或者不大于等于则转移 JNL(或JGE)--------------不小于或者大于等于则转移 JG(或NJLE)---------------大于或者不小于等于则转移 JNG(或JLE)---------------不大于或者小于等于则转移
六、调用子程序与返回指令 CALL 子程序调用指令 RET 子程序返回指令
六、其它指令 OFFSET -------------------- 返回偏移地址 SEG -------------------- 返回段地址 EQU(=) -------------------- 等值语句 PURGE -------------------- 解除语句 DUP -------------------- 操作数字段用复制操作符 SEGMENT,ENDS -------------------- 段定义指令 ASSUME -------------------- 段地址分配指令 ORG -------------------- 起始偏移地址设置指令 $ --------------------地址计数器的当前值 PROC,ENDP -------------------- 过程定义语句 NAME,TITLE,END -------------------- 程序开始结束语句 MACRO,ENDM --------------------宏定义指令 XLAT (TRANSLATE) -------------------- 换码指令----
七、条件标志 ZF 零标志 -- 当结果为负时,SF=1,否则,SF=0. AF 辅助进位标志---运算过程中第三位有进位值,置AF=1,否则,AF=0 PF 奇偶标志------当结果操作数中偶数个"1",置PF=1,否则,PF=0 SF 符号标志----当结果为负时,SF=1;否则,SF=0.溢出时情形例外 CF 进位标志----- 最高有效位产生进位值,例如,执行加法指令时,MSB有进位,置CF=1;否则,CF=0. OF 溢出标志-----若操作数结果超出了机器能表示的范围,则产生溢出,置OF=1,否则,OF=0
http://blog.163.com/java-home/blog/static/113844320099247571920/
6. 通用寄存器有哪些
1、数据寄存器
数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
2、变址寄存器
32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。
3、指针寄存器
32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应先前CPU中的SBP和SP,对低16位数据的存取,不影响高16位的数据。
4、段寄存器
段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。
5、指令指针寄存器
32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。 指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。
(6)EIP编程扩展阅读
寄存器是CPU内部重要的数据存储资源,用来暂存数据和地址,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。
寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。
另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。
参考资料来源:网络-通用寄存器
7. java手机编程的机制
说白了就是可以下载应用程序玩游戏 详细请看下面 Java简介
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。
Java分为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。
[编辑本段]Java语言的特点
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
[编辑本段]Java的主要特性:
1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
[编辑本段]相关技术
1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口。
2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。
4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无逢的互操作性。这使得Java能集成异构的商务信息资源。
5、JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无逢的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。
6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。
8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围。
[编辑本段]Java开源项目
Spring Framework
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。.
WebWork
WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.
Struts
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
Hibernate
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:
Quartz
Quartz 是OpenSymphony开源组织在Job scheling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。
Velocity
Velocity 是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
IBATIS
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
Compiere ERP&CRM
Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。
Roller Weblogger
这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。
Eclipse
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
XPlanner
XPlanner 一个基于Web的XP团队计划和跟踪工具。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
HSQLDB
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
Liferay
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。
JetSpeed
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML。用户可以使用浏览器,支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息。Jetspeed扮演着信息集中器的角色,它能够把信息集中起来并且很容易地提供给用户。
JOnAS
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
JFox3.0
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的
8. 完整的中断处理过程分为那几个阶段
1)中断响应的事前准备:
系统要想能够应对各种不同的中断信号,总的来看就是需要知道每种信号应该由哪个中断服务程序负责以及这些中断服务程序具体是如何工作的。系统只有事前对这两件事都知道得很清楚,才能正确地响应各种中断信号和异常。
2) CPU检查是否有中断/异常信号
CPU在执行完当前程序的每一条指令后,都会去确认在执行刚才的指令过程中中断控制器(如:8259A)是否发送中断请求过来,如果有那么CPU就会在相应的时钟脉冲到来时从总线上读取中断请求对应的中断向量。
对于异常和系统调用那样的软中断,因为中断向量是直接给出的,所以和通过IRQ(中断请求)线发送的硬件中断请求不同,不会再专门去取其对应的中断向量。
3) 根据中断向量到IDT表中取得处理这个向量的中断程序的段选择符
CPU根据得到的中断向量到IDT表里找到该向量对应的中断描述符,中断描述符里保存着中断服务程序的段选择符。
4) 根据取得的段选择符到GDT中找相应的段描述符
CPU使用IDT查到的中断服务程序的段选择符从GDT中取得相应的段描述符,段描述符里保存了中断服务程序的段基址和属性信息,此时CPU就得到了中断服务程序的起始地址。
5) CPU根据特权级的判断设定即将运行的中断服务程序要使用的栈的地址
CPU会根据CPL和中断服务程序段描述符的DPL信息确认是否发生了特权级的转换,比如当前程序正运行在用户态,而中断程序是运行在内核态的,则意味着发生了特权级的转换,这时CPU会从当前程序的TSS信息(该信息在内存中的首地址存在TR寄存器中)里取得该程序的内核栈地址。
6) 保护当前程序的现场
CPU开始利用栈保护被暂停执行的程序的现场:依次压入当前程序使用的eflags,cs,eip,errorCode(如果是有错误码的异常)信息。
7) 跳转到中断服务程序的第一条指令开始执行
CPU利用中断服务程序的段描述符将其第一条指令的地址加载到cs和eip寄存器中,开始执行中断服务程序。这意味着先前的程序被暂停执行,中断服务程序正式开始工作。
8) 中断服务程序处理完毕,恢复执行先前中断的程序
在每个中断服务程序的最后,必须有中断完成返回先前程序的指令,这就是iret(或iretd)。程序执行这条返回指令时,会从栈里弹出先前保存的被暂停程序的现场信息,即eflags,cs,eip重新开始执行。
(8)EIP编程扩展阅读
硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。
中断在计算机多任务处理,尤其是实时系统中尤为有用。这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。
中断使CPU中止正在执行的程序而转去处理特殊事件的操作,这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它内部原因。
在运行一个程序的过程中,断续地以“插入”方式执行一些完成特定处理功能的程序段,这种处理方式称为中断。
9. 请问:Eip是什么软件阿,用途
不是EIP,而是ERP软件简介如下[编辑本段]企业资源计划 所谓ERP是英文Enterprise Resource Planning(企业资源计划)的简写。
是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。ERP系统集信息技术与先进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。
ERP管理软件详细介绍:
当今的社会发展中,电子工业发展的最快,特别是计算机为核心的IT行业发展更为突出,IT行业与其他传统的行业相比较而言
1. 专业性
和普通消费品相比,IT行业的产品则显得很专业,产品的更新换代非常快。和其他工业化产品相比,IT产品则更加接近大众,近20年来,IT产品的需求一直处于上升势头,这个产业也随需求的增加而增加。
2. 规模化经营
IT产品的高利润时代已经过去了,为了提高盈利水平,IT公司往往是通过扩大规模,同时也就带来了管理问题,规模化经营和规范化管理已经成为IT公司发展的重要手段。
3. 时尚与变化
IT行业的产品变化是最快的,技术上的不断进步,满足客户的时尚化要求,这就要求IT公司能跟上这种变化,产品的多样性也给经营和管理带来很多麻烦。
4. 业务多样性
IT公司的业务已经突破传统意义的销售模式,增加了很多能够刺激销售的业务模式,例如:欠款销售、赊销、代销、DIY或BTO销售模式、专业的分销、专卖店、行业销售等。
这些销售方式在带来利益的同时,给管理带来非常大的难度。
5. 周转速度快
和其他传统的行业相比,IT行业的销售周转速度是最快的,对于运作产品的公司而言,资金周转的速度一般在7-10天,最短可达3天,这对于有效提高资金利用率,降低经营风险起到非常重要的作用,当然对管理的要求也就高了。
6. 分散式管理
分店/分公司是近些年发展过程中的普遍现象,互联网的技术发展,使得计算机实现远程联网,这是能够推广使用软件管理的前提。
7. DIY业务
DIY业务,用户自己选择配件进行组装已经形成了时尚,选择组装电脑的客户具有相当的比例,这就是DIY市场经久不衰的原因。
DIY业务是简单的生产管理,已经不是简单的商品销售问题,增加了管理上的麻烦。
8. 返修业务
对于计算配件市场而言,故障率是比较高的,行业的规范就是在保修期之内是可以更换的。由于批量较大,使得管理过程非常复杂,但返修件的管理对公司的影响是非常大的。
9. 售后服务
由于IT产品具有很强的专业性,售后服务就显得非常重要,同时也是客户选择IT公司的重要原则之一。
结论:
IT行业的管理和其他行业存在很大差别,比其他传统行业复杂了很多。返修折款,返点,价保,折扣,对发,代发货,代收货,代收款,税点计算,库存实时性
多店管理,分部门,人员的考核体系等等,这些都是IT行业的特性 所以很多公司都在寻找最适合自己的专业化软件
10.管理带动发展!
ERP系统的管理思想
ERP的核心管理思想就是实现对整个供应链的有效管理,主要体现在以下三个方面:
1、体现对整个供应链资源进行管理的思想
在知识经济时代仅靠自己企业的资源不可能有效地参与市场竞争,还必须把经营过程中的有关各方如供应商、制造工厂、分销网络、客户等纳入一个紧密的供应链中,才能有效地安排企业的产、供、销活动,满足企业利用全社会一切市场资源快速高效地进行生产经营的需求,以期进一步提高效率和在市场上获得竞争优势。换句话说,现代企业竞争不是单一企业与单一企业间的竞争,而是一个企业供应链与另一个企业供应链之间的竞争。ERP系统实现了对整个企业供应链的管理,适应了企业在知识经济时代市场竞争的需要。
2、体现精益生产、同步工程和敏捷制造的思想
ERP系统支持对混合型生产方式的管理,其管理思想表现在两个方面:其一是“精益生产LP(Lean Proction)”的思想,它是由美国麻省理工学院(MIT)提出的一种企业经营战略体系。即企业按大批量生产方式组织生产时,把客户、销售代理商、供应商、协作单位纳入生产体系,企业同其销售代理、客户和供应商的关系,已不再简单地是业务往来关系,而是利益共享的合作伙伴关系,这种合作伙伴关系组成了一个企业的供应链,这即是精益生产的核心思想。其二是“敏捷制造(Agile Manufacturing)”的思想。当市场发生变化,企业遇有特定的市场和产品需求时,企业的基本合作伙伴不一定能满足新产品开发生产的要求,这时,企业会组织一个由特定的供应商和销售渠道组成的短期或一次性供应链,形成“虚拟工厂”,把供应和协作单位看成是企业的一个组成部分,运用“同步工程(SE)”,组织生产,用最短的时间将新产品打入市场,时刻保持产品的高质量、多样化和灵活性,这即是“敏捷制造”的核心思想。
3、体现事先计划与事中控制的思想
ERP系统中的计划体系主要包括:主生产计划、物料需求计划、能力计划、采购计划、销售执行计划、利润计划、财务预算和人力资源计划等,而且这些计划功能与价值控制功能已完全集成到整个供应链系统中。
另一方面,ERP系统通过定义事务处理(Transaction)相关的会计核算科目与核算方式,以便在事务处理发生的同时自动生成会计核算分录,保证了资金流与物流的同步记录和数据的一致性。从而实现了根据财务资金现状,可以追溯资金的来龙去脉,并进一步追溯所发生的相关业务活动,改变了资金信息滞后于物料信息的状况,便于实现事中控制和实时做出决策。
此外,计划、事务处理、控制与决策功能都在整个供应链的业务处理流程中实现,要求在每个流程业务处理过程中最大限度地发挥每个人的工作潜能与责任心,流程与流程之间则强调人与人之间的合作精神,以便在有机组织中充分发挥每个的主观能动性与潜能。实现企业管理从“高耸式”组织结构向“扁平式”组织机构的转变,提高企业对市场动态变化的响应速度。 总之,借助IT技术的飞速发展与应用,ERP系统得以将很多先进的管理思想变成现实中可实施应用的计算机软件系统。更多的了解请见 http://ke..com/view/3609.html?wtp=tt
10. 欧姆龙PLC中型机用什么编程软件 CPU:CJ2H-CPU65-EIP
cx-one 4.0
cx-program 9.3就可以