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就可以