直接編譯法
1. 微指令的編譯方法有哪些
直接編碼(直接控制)方式、欄位直接編碼方式、欄位間接編碼方式、混合編碼、其他(常數欄位)。特點:直接編碼速度快,但控存容量極大;欄位直接編碼縮短了微指令的長度,但是增加了解碼電路。
微指令是指在機器的一個CPU周期中,一組實現一定操作功能的微命令的組合,描述微操作的語句。微命令是指控制部件通過控制線向執行部件發出各種控制命令。操作微指令是描述受控電路的操作語句 , 分支微指令是描述控制電路的分支語句。
一條機器指令的功能是若干條微指令組成的序列來實現的,即一條機器指令所完成的操作分成若干條微指令來完成,由微指令進行解釋和執行,這個微指令序列通常叫做微程序。
微指令的編譯方法是決定微指令格式的主要因素。考慮到速度,成本等原因,在設計計算機時採用不同的編譯法 。因此微指令的格式大體分成兩類:水平型微指令和垂直型微指令。
2. 能否將C#代碼直接編譯成機器代碼
很抱歉,這是不可能的。C#語言程序不可能脫離.net框架,就像java一樣,C#語言的運行環境是.net framework,.net對於C#就像Java虛擬機對於Java語言一樣。另外,C#是一種有限制語言,.net負責保證代碼訪問的安全特性,C++是唯一可以允許程序員開發無限制低級程序的語言,.net不僅負責為代碼提供運行支持,還負責保證程序的安全性,一種受限制的語言是不能脫離限製程序的控制的,對於C#,.net就是控制系統,因此,C#程序不可能脫離.net環境。
===================================================
對補充的答復:
這恐怕也是不行的。在以往的PE結構的程序中,因為不同的CPU擁有不同的指令集,所以為了適應客戶機的硬體的不同,往往會開發一個程序的不同版本,微軟為了解決這個問題,在.net中准備了多個即時編譯器(JIT),當一個中間語言的程序在客戶機上運行時,JIT會根據客戶機當前的硬體配置和操作系統等方面的情況對代碼進行優化,然後生成本地化的機器代碼,這個機器代碼並不是全部程序的代碼,而是只生成程序運行必須的部分,其它的會在執行時根據需要動態生成。微軟官方對項技術的解釋為:
「JIT 編譯考慮了在執行過程中某些代碼可能永遠不會被調用的事實。它不是耗費時間和內存將可移植可執行 (PE) 文件中的所有 MSIL 轉換為本機代碼,而是在執行期間根據需要轉換 MSIL 並存儲生成的本機代碼以供後繼的調用使用。當載入類型時,載入器創建存根 (stub) 並將其附加到類型的每個方法。當對方法進行初始調用時,存根 (stub) 將控制傳遞給 JIT 編譯器,而編譯器將該方法的 MSIL 轉換為本機代碼並修改存根 (stub) 以直接執行到本機代碼的位置。後面對 JIT 編譯的方法的調用將直接進行到以前生成的本機代碼,從而減少了進行 JIT 編譯和運行代碼所需的時間。」(原文)
此外,當一個程序開始運行後,JIT首先開始進行即時編譯,當某個被編譯過的方法被再次執行時,將直接執行它的本地代碼。
希望這些信息對您有所幫助。
3. 在VI編輯器裡面有什麼方法可以直接編譯程序 沒分了 求高手幫助!!!
:!再加命令吧,按回車可以返回到vi的編輯界面
4. 怎麼從源代碼編譯成exe程序
通過編譯器編譯
每種語言基本上都有自己的編譯器
例
如 :源碼是C代碼,可以通過C或VC、VS編譯器編譯
5. Delphi 的編譯方法
拖動需要的控制項到窗體上,然後設置它的屬性,再編寫它的事件過程
6. 微程序的控制方式有哪些
微程序控制的基本思想,就是仿照通常的解題程序的方法,把操作控制信號編成所謂的「微指令」,存放到一個只讀存儲器里.當機器運行時,一條又一條地讀出這些微指令,從而產生全機所需要的各種操作控制信號,使相應部件執行所規定的操作
.
採用微程序控制方式的控制器稱為微程序控制器。所謂微程序控制方式是指微命令不是由組合邏輯電路產生的,而是由微指令解碼產生。一條機器指令往往分成幾步執行,將每一步操作所需的若干位命令以代碼形式編寫在一條微指令中,若干條微指令組成一段微程序,對應一條機器指令。在設計cpu時,根據指令系統的需要,事先編制好各段微程序
,且將它們存入一個專用存儲器(稱為控制存儲器)中。微程序控制器由指令寄存器ir、程序計數器pc、程序狀態字寄存器psw、時序系統、控制存儲器cm、微指令寄存器以及微地址形成電路、微地址寄存器等部件組成。執行指令時,從控制存儲器中找到相應的微程序段,逐次取出微指令,送入微指令寄存器,解碼後產生所需微命令,控制各步操作完成。
7. 如何調出sublime中的編譯方法
解決方法:使用批處理文件。本解決方法以C語言程序為例,編譯器是gcc,我下載了MINGW直接解壓到C盤根目錄下,並設置了相應的PATH。其它編程語言可以按照這個思路適當修改批處理文件。
新建兩個批處理文件,一個名為runp.bat,內容如下:
@echo off
%1
pause
exit
一個為callrunp.bat,內容如下:
@echo off
start runp.bat %1
然後在sunlime text 2中新建一個配置文件C.sublime-build,內容如下:
{
"cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"variants":
[
{
"name": "Run",
"cmd": ["callrunp.bat", "${file_base_name}.exe"],
"working_dir": "${file_path}"
}
]
}
上半部分是從sublime text 2的C++編譯配置文件中抄來的,只是把編譯器改成了gcc,可編譯的文件名改成了source.c。後半部分就是關鍵,使用callrunp.bat執行生成的可執行文件,可以打開一個命令行窗口,就可以輸入數據了。
8. Linux下在terminal運行c++程序的問題。用gcc編譯器
多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:#gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
2. 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接。
用法:
#gcc -c testfun.c //將testfun.c編譯成testfun.o
#gcc -c test.c //將test.c編譯成test.o
#gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
9. 怎麼用dos命令編譯JAVA文件
首先,保證你的javac程序在搜索路徑內,如果不知道怎麼設置路徑,可以使用完整路徑運行javac
比如:C:\java\jdk1.6\bin\javac
然後再後面加上你的java文件,根據你的class文件,需要將java文件放到tom\jiafei\下
比如你在d盤根目錄運行,就是在D盤建立tom,再裡面建立jiafei,然後運行
javac tom\jiafei\Lader.java
10. sublime text能不能直接編譯看效果
1. 更改變數名的幾種方法
這種情況下該如何快速選中正確的內容?
第一種方法:讓 Cmd-D (Win: Ctrl-D)只選擇同一個變數。
把游標移到第一個i後面:
再按一次:再按一次:
限制:選取范圍中不能有別的同名同類 token,如:限制:選取范圍中不能有別的同名同類 token,如:
第二種方法:自動選取所有同名同類 token。
把游標移到第一個i後面:
第三種方法:Cmd-K, Cmd-D (Win: Ctrl-K, Ctrl-D) 跳過選區。
這個方法能解決所有問題,先把游標移到第一個i後面:
再按一次:再按一次:
Ctrl-D) 就可以跳過這個選區:
這個 token 也不要,再按一次跳過:這個 token 也不要,再按一次跳過:
你會發現執行跳過選區後就不再是同名同類的 token 選擇了,不過不要緊,我們繼續跳過就好:你會發現執行跳過選區後就不再是同名同類的 token 選擇了,不過不要緊,我們繼續跳過就好:
這個 token 我們要保留,於是只按 Cmd-D (Win: Ctrl-D):這個 token 我們要保留,於是只按 Cmd-D (Win: Ctrl-D):
然後就能正確地重命名了。然後就能正確地重命名了。
2. 矩形(垂直)選區
相信很多人都知道按住滑鼠中鍵(滾輪鍵)拖動選區可以進行垂直選擇:
但是很多時候我們沒有滑鼠中鍵可以按,這時候可以用下面幾種方式進行垂直選擇:但是很多時候我們沒有滑鼠中鍵可以按,這時候可以用下面幾種方式進行垂直選擇:
第一種方法:滑鼠左鍵 + Option (Win: 滑鼠右鍵 + Shift)
這種方法仍然需要滑鼠進行拖動選擇,只是單純的滑鼠中鍵的替代。
第二種方法:只用鍵盤操作
首先把游標移動到我們要選中的矩形選區的左上角: