① 計算機馬上將要進行執行的指令和數據存放在機器的什麼中
處理器的1級緩存,2級緩存,有的處理器還有3級。還有內存條中,害我硬碟緩沖器的部分緩存。
② 在匯編語言中調用函數後,函數返回值存儲在哪裡
調用函數後返回值都是存儲在EAX中
下面來看一下執行過程
在主程序中每次調用函數時,先依次把各參數以相反的順序入棧;
然後call func_name, 這里call要做兩件事: 一是把函數的返回地址入棧,二是讓指令執行指針%eip指向函數開始處。
開始執行
現在函數要開始執行了,但它執行函數代碼前還要做一點小事,首先把原來的基地址寄存器%ebp值入棧,因為在程序執行中%ebp要另作它用, 接著堆棧指針%esp的值復制給%ebp, 此後在函數執行中%ebp一直保持不變,可以由此定址獲得函數參數。
pushl %ebp
movl %esp, %ebp
下面開始執行函數代碼了。函數先要把它的局部變數保存在棧中,這很簡單。比如要保存一個long型數據,只要把%esp指針向下移動4個位元組(因為棧增長方向是由高地址到低地址),再根據%esp把該數據移入. 下面是保存兩個局部變數long後的堆棧內容:
Parameter #N <--- N*4+4(%ebp)
...
Parameter 2 <--- 12(%ebp)
Parameter 1 <--- 8(%ebp)
Return Address <--- 4(%ebp)
Old %ebp <--- (%ebp)
Local Variable 1 <--- -4(%ebp)
Local Variable 2 <--- -8(%ebp) and (%esp)
從上可以看出通過%ebp基地址定址可以訪問所有的函數參數和局部變數. 當然也可以不用
%ebp而用其它的寄存器進行同樣的基地址定址。但對於x86結構使用%ebp寄存器可能會更
快一點。
執行結束:
③ 已有AX=E896H BX=3976H 若執行ADD BX,AX指令 則結果存放在哪裡其值分別是
G00指令
中國
G00指令是在工件坐標系移動工具達到了絕對或增量指令位置指定的快速進給速度;
G00指令的快速進給速度由機床參數「快速進給率」為每個軸設置,如此之快的移動速度不能在地址F的具體確定的,快速移動速度可迅速糾正覆蓋前面板按鈕;
在實施G00的,由於各軸移動其速度是不能保證達到每個軸在同一時間的結束,所以在合成軌道不一定是直線軸聯動線。點擊看詳細G01代碼
中國
G01代碼的工具,直線插補功能:G01命令允許該工具一定的進給速度,從點在哪裡出發,直線移動到目標點。
G01倒角,圓角功能:G01倒角控制功能可被插入到兩個相鄰軌道之間的線性或圓形倒角倒角塊。
④ 計算機指令主要存放在哪
計算機指令主要存放在存儲器。存儲器單元實際上是時序邏輯電路的一種。按存儲器的使用類型可分為只讀存儲器(ROM)和隨機存取存儲器(RAM),兩者的功能有較大的區別,因此在描述上也有所不同。存儲器是許多存儲單元的集合,按單元號順序排列。
每個單元由若干三進制位構成,以表示存儲單元中存放的數值,這種結構和數組的結構非常相似,故在VHDL語言中,通常由數組描述存儲器。
為提高存儲器的性能,通常把各種不同存儲容量、存取速度和價格的存儲器按層次結構組成多層存儲器,並通過管理軟體和輔助硬體有機組合成統一的整體,使所存放的程序和數據按層次分布在各存儲器中。
主要採用三級層次結構來構成存儲系統,由高速緩沖存儲器Cache、主存儲器和輔助存儲器組成。圖中自上向下容量逐漸增大,速度逐級降低,成本則逐次減少。
(4)指令執行後結果是什麼存儲在哪裡擴展閱讀:
回顧計算機的發展歷史,指令系統的發展經歷了從簡單到復雜的演變過程。早在20世紀50-60年代,計算機大多數採用分立元件的晶體管或電子管組成,其體積龐大,價格也很昂貴。
因此計算機的硬體結構比較簡單,所支持的指令系統也只有十幾至幾十條最基本的指令,而且定址方式簡單。到60年代中期,隨著集成電路的出現,計算機的功耗、體積、價格等不斷下降,硬體功能不斷增強,指令系統也越來越豐富。
⑤ 簡述一條指令從取指令到執行完畢的過程,給出涉及到的匯流排及存儲器信息變化情況.
計算機每執行一條指令都可分為三個階段進行。即取指令-----分析指令-----執行指令。
取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
分析指令階段的任務是:將指令寄存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。
計算機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。
一般計算機進行工作時,首先要通過外部設備把程序和數據通過輸入介面電路和數據匯流排送入到存儲器,然後逐條取出執行。但單片機中的程序一般事先我們都已通過寫入器固化在片內或片外程序存儲器中。因而一開機即可執行指令。
下面我們將舉個實例來說明指令的執行過程:
開機時,程序計算器PC變為0000H。然後單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。
例如執行指令:MOV A,#0E0H,其機器碼為「74H E0H」,該指令的功能是把操作數E0H送入累加器,
0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開始運行時,首先是進入取指階段,其次序是:
1 程序計數器的內容(這時是0000H)送到地址寄存器;
2 程序計數器的內容自動加1(變為0001H);
3 地址寄存器的內容(0000H)通過內部地址匯流排送到存儲器,以存儲器中地址解碼電跟,使地址為0000H的單元被選中;
4 CPU使讀控制線有效;
5 在讀命令控制下被選中存儲器單元的內容(此時應為74H)送到內部數據匯流排上,因為是取指階段,所以該內容通過數據匯流排被送到指令寄存器。至此,取指階段完成,進入解碼分析和執行指令階段。
由於本次進入指令寄存器中的內容是74H(操作碼),以解碼器解碼後單片機就會知道該指令是要將一個數送到A累加器,而該數是在這個代碼的下一個存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個位元組。其過程與取指階段很相似,只是此時PC已為0001H。指令解碼器結合時序部件,產生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經內部數據匯流排進入A累加器,而不是進入指令寄存器。至此,一條指令的執行完畢。單片機中PC="0002H",PC在CPU每次向存儲器取指或取數時自動加1,單片機又進入下一取指階段。這一過程一直重復下去,直至收到暫停指令或循環等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定
⑥ 即將執行的指令存於內存的地址號存放在什麼中
選A。
特殊寄存器不在RAM內,只是和RAM統一編址,PC指針在CPU內。從結構角度講,特殊寄存器和RAM不可能在一起,因為根本就不是一樣的東西。只是為了使用方便,統一編址。
CPU對RAM對特殊寄存器甚至自己接的外設都是採用同樣的定址方式,所以為了用戶使用方便把特殊寄存器和RAM統一編址。
(6)指令執行後結果是什麼存儲在哪裡擴展閱讀:
當執行指令時,CPU將自動修改PC的內容,即每執行一條指令PC增加一個量,這個量等於指令所含的位元組數,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC加1。PC的維數一般和存儲器地址寄存器MAR的維數一樣。
⑦ 機器指令是存放在哪個存儲器中
所有指令是協調工作的
我想這些指令也是存儲與不同的寄存器中。
並不是孤立的哪一個上面。
~~~~~~~~
寄存器是中央處理器內的其中組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
寄存器(Register)
寄存器是內存階層 中的最頂端,也是系統操作資料的最快速途徑。寄存器通常都是以他們可以保存的 位元 數量來估量,舉例來說,一個 "8 位元寄存器" 或 "32 位元 寄存器"。寄存器現在都以寄存器檔案 的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存 以及在數種機器上的其他方式來實作出來。
寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 "架構寄存器"。
例如,x86 指令及定義八個 32 位元寄存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的寄存器。
寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。
寄存器的用途:
1.可將寄存器內的數據執行算術及邏輯運算。
2.存於寄存器內的地址可用來指向內存的某個位置,即定址。
3.可以用來讀寫數據到電腦的周邊設備。
8086 有8個8位數據寄存器,
這些8位寄存器可分別組成16位寄存器:
AH&AL=AX:累加寄存器,常用於運算;
BH&BL=BX:基址寄存器,常用於地址索引;
CH&CL=CX:計數寄存器,常用於計數;
DH&DL=DX:數據寄存器,常用於數據傳遞。
為了運用所有的內存空間,8086設定了四個段寄存器,專門用來保存段地址:
CS(Code Segment):代碼段寄存器;
DS(Data Segment):數據段寄存器;
SS(Stack Segment):堆棧段寄存器;
ES(Extra Segment):附加段寄存器。
當一個程序要執行時,就要決定程序代碼、數據和堆棧各要用到內存的哪些位置,通過設定段寄存器 CS,DS,SS 來指向這些起始位置。通常是將DS固定,而根據需要修改CS。所以,程序可以在可定址空間小於64K的情況下被寫成任意大小。 所以,程序和其數據組合起來的大小,限制在DS 所指的64K內,這就是COM文件不得大於64K的原因。8086以內存做為戰場,用寄存器做為軍事基地,以加速工作。
除了前面所提的寄存器外,還有一些特殊功能的寄存器:
IP(Intruction Pointer):指令指針寄存器,與CS配合使用,可跟蹤程序的執行過程;
SP(Stack Pointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。
BP(Base Pointer):基址指針寄存器,可用作SS的一個相對基址位置;
SI(Source Index):源變址寄存器可用來存放相對於DS段之源變址指針;
DI(Destination Index):目的變址寄存器,可用來存放相對於 ES 段之目的變址指針。
還有一個標志寄存器FR(Flag Register),有九個有意義的標志(
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: 狀態控制標志位是用來控制CPU操作的,它們要通過專門的指令才能使之發生改變
SF: 符號標志SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼表示法,所以,SF也就反映運算結果的正負號。運算結果為正數時,SF的值為0,否則其值為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。)
以上是8086寄存器的整體概況, 自80386開始,PC進入
32bit時代,其定址方式,寄存器大小, 功能等都發生了變化, 要想學習這方面知識請參考相應資料.
⑧ 在計算機中,指令主要存放在哪裡
在計算機中,指令主要存放在存儲器。
計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。
計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。
存儲器是具有「記憶」功能的設備,它採用具有兩種穩定狀態的物理器件來存儲信息。這些器件也稱為記憶元件。在計算機中採用只有兩個數碼「0」和「1」的二進制來表示數據。記憶元件的兩種穩定狀態分別表示為「0」和「1」。
日常使用的十進制數必須轉換成等值的二進制數才能存入存儲器中。計算機中處理的各種字元,例如英文字母、運算符號等,也要轉換成二進制代碼才能存儲和操作。
(8)指令執行後結果是什麼存儲在哪裡擴展閱讀
存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。
接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。
⑨ 計算機中正在執行的指令存放在哪裡
計算機中正在執行的指令存放在內存里。
⑩ 計算機執行程序的時候,通常在哪裡保存待處理的數據
計算機執行程序的時候,通常在內存保存待處理的數據。