⑴ 請問:後綴是ASM的文件就是匯編語言編的源代碼程序嗎
是的 匯編是 .ASM 比如hello.asm 等等
⑵ 將.c轉換為.asm(c語言轉換為匯編)
VC++ 編譯器 自帶的 mpbin 就可以 做反匯編。
C:\Program Files\Microsoft Visual Studio\VC98\BIN\DUMPBIN.exe
mpbin /DISASM abc.exe
出來了
mpbin /DISASM abc.exe /OUT:abc.asm
存入abc.asm
⑶ 源碼的作用及介紹有哪些
源碼是指編寫的最原始程序的代碼。運行的軟體是要經過編寫的,程序員編寫程序的過程中需要他們的語言。以下是由我整理關於什麼是源碼的內容,希望大家喜歡!
1、計算機裡面運行的所有東西都是用程序編出來的(包括操作系統,如Windows,還有Word等,網路游戲也一樣),而編寫程序要用到計算機語言,用計算機語言直接編出來的程序就叫源碼,比如用
VisualBasic編寫的源碼文件一般為、bas文件,而用C++編寫的一般為、cpp文件,源代碼不能直接運行,必須編譯後才能運行。源碼經過編譯處理後就可以直接在操作系統下運行了。
2、很多的站長都喜歡使用建網站的程序源碼,因為可以很方便的修改,對於任何一個seo人員來說,都是非常好的一個切入點。
3、從字面意義上來講,源文件是指一個文件,指源代碼的集合、源代碼則是一組具有特定意義的可以實現特定功能的字元(程序開發代碼)。
4、“源代碼”在大多數時候等於“源文件”。
比如在這個網頁上右鍵滑鼠,選擇查看源文件、出來一個記事本,裡面的內容就是此網頁的源代碼、"這句話就體現了他們的關系,此處的源文件是指網頁的源文件,而源代碼就是源文件的內容,所以又可以稱做網頁的源代碼、、
源代碼是指原始代碼,可以是任何語言代碼。
匯編碼是指源代碼編譯後的代碼,通常為二進制文件,比如共享庫、可執行文件、、NET中間代碼、JAVA中間代碼等。
高級語言通常指C/C++、BASIC、C#、JAVA、PASCAL、易語言等等。匯編語言就是ASM,只有這個,比這個更低級的就是機器語言了。
1、生成目標代碼,即計算機可以識別的代碼。
2、對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。
雖然我們可以通過不同的語言來實現計算機的同一功能,但在執行效率上則存在不同。普遍規律是:越高級的語言,其執行效率越低。這也是為什麼匯編語言生成的文件比用BASIC語言生成文件普遍要小的原因。
源代碼就是用匯編語言和高級語言寫出來的代碼。主要對象是面向開發者;
我們平常使用的應用程序都是經過源碼編譯打包以後發布的,呈現的最後結果是面向使用者,最終客戶的。
網站程序一般就是可以用記事本打開的好多行英文的,用編程語言寫好的軟體
源程序經過編譯成目標程序,才能運行。一般目標程序不能再修改了。
我們電腦上安裝的軟體都是目標程序。源程序不可能直接運行的。
提倡軟體開源的人士認為應該提供源程序給用戶,讓用戶自己修改,有利於軟體行業的發展。反對的人覺得這樣不利於保護版權。
⑷ 有沒有將c語言源代碼轉換成匯編語言的軟體
如果只是想得到C語言或C++語言的匯編代碼
可以通過指定編譯器的選項來達成目的,這里我們用1998年生產的Windows平台VC6.0的SDK舉例(以傳統的命令行編譯環境方式,對應的IDE集成開發環境可在工程》設置里在編譯選項里加入/Fa即可):
開始》運行,輸入cmd啟動命令行,
若安裝了VC6.0的SDK(或其IDE集成開發環境),默認路徑為"C:\Program Files\Microsoft Visual Studio「
命令行輸入"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"回車執行初始化編譯環境
命令行輸入 mkdir CtoASMTest建立測試目錄,並進入該目錄,命令行輸入 cd CtoASMTest
用記事本建立測試代碼,命令行輸入notepad CtoASM_test.c回車確認,輸入以下測試C代碼
int main(int argc,char* argv[]){
int i;
for(i = 0; i < argc; ++i){
printf("argv[%d] is:\t%s\n",i,argv[i]);
}
printf("CtoASM_test end.\n");
}
若直接默認編譯,命令行輸入cl CtoASM_test.c,則會產生對象文件*.obj和目標文件*.exe
命令行輸入dir 列出測試目錄文件清單如下,多了obj和exe編譯產生的文件
CtoASM_test.c
CtoASM_test.exe
CtoASM_test.obj
若想得到c文件對應的匯編語言文件,可以指定匯編文件產生選項 /Fa,即cl /Fa CtoASM_test.c則會同時產生匯編文件CtoASM_test.asm,內容如下
TITLE CtoASM_test.c
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC _main
EXTRN _printf:NEAR
_DATA SEGMENT
$SG41 DB 'argv[%d] is:', 09H, '%s', 0aH, 00H
ORG $+3
$SG42 DB 'CtoASM_test end.', 0aH, 00H
_DATA ENDS
_TEXT SEGMENT
_argc$ = 8
_argv$ = 12
_i$ = -4
_main PROC NEAR
; File CtoASM_test.c
; Line 1
push ebp
mov ebp, esp
push ecx
; Line 3
mov DWORD PTR _i$[ebp], 0
jmp SHORT $L37
$L38:
mov eax, DWORD PTR _i$[ebp]
add eax, 1
mov DWORD PTR _i$[ebp], eax
$L37:
mov ecx, DWORD PTR _i$[ebp]
cmp ecx, DWORD PTR _argc$[ebp]
jge SHORT $L39
; Line 4
mov edx, DWORD PTR _i$[ebp]
mov eax, DWORD PTR _argv$[ebp]
mov ecx, DWORD PTR [eax+edx*4]
push ecx
mov edx, DWORD PTR _i$[ebp]
push edx
push OFFSET FLAT:$SG41
call _printf
add esp, 12 ; 0000000cH
; Line 5
jmp SHORT $L38
$L39:
; Line 6
push OFFSET FLAT:$SG42
call _printf
add esp, 4
; Line 7
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
其中還可以產生其它文件,可以參考編譯器的選項說明,命令行輸入cl /?查看幫助,其中關於產生的輸出文件類型可以有以下選擇
-OUTPUT FILES-
/Fa[file] name assembly listing file /Fo<file> name object file
/FA[sc] configure assembly listing /Fp<file> name precompiled header file
/Fd[file] name .PDB file /Fr[file] name source browser file
/Fe<file> name executable file /FR[file] name extended .SBR file
----------------------------------------------
補充,
其它平台的編譯器也有類似的匯編輸出選項,如類Unix平台的GNU編譯器cc -S CtoASM_test.c和gcc -S CtoASM_test.c 都可以通過指定-S選項產生c或c++代碼對應的匯編語言文件。
⑸ 病毒,源代碼asm格式怎麼用 啊
ASM是匯編源碼文件,使用匯編軟體編譯即可得到可執行文件。
⑹ 我的點腦怎麼不能生成.asm格式的文件呢請高手指點
.asm是匯編語言的源代碼,也就是文本文件格式,隨便一個編輯器比如記事本、寫字板都可以生成的。
編譯時用命令:masm
filename.asm即可,可生成.exe、.obj等目標文件,當然原.asm文件還保留。
⑺ .asm是什麼文件
ASM是匯編語言源程序的擴展名,匯編語言(Assembly Language)是面向機器的程序設計語言。匯編語言是一種功能很強的程序設計語言,是利用計算機所有硬體特性並能直接控制硬體的語言。打開asm文件有兩種方法即筆記本和MasmEdit軟體。
在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。
使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。
匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
(7)pl源碼可以轉化為asm源碼嗎擴展閱讀:
匯編語言的特點
1、面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2、保持了機器語言的優點,具有直接和簡捷的特點。
3、可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。
4、目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。
5、經常與高級語言配合使用,應用十分廣泛。
⑻ 如何把pl\1代碼轉換成cobol代碼
(1) IBM VisualAge Millenium Language Extensions(MLE)
千年語言擴展(MLE)技術是一種強大的第二代修復技術。這種專利技術可以生成高效的、編譯器產生的分割代碼。有了MLE,您就不必為每個程序中所有關於 2000 年日期的變數手工添加邏輯,從而更迅速地實現轉換。IBM 「面向2000年」的 COBOL 和 PL/I 編譯器版本及其運行庫,通過千年語言擴展(MLE)技術,實現自動化的日期窗口,解決千年難題。
MLE的實現非常簡單。MLE允許您指定一條新的DATE FORMAT子句,識別源代碼中的日期數據說明語句。由編譯器支持的MLE將在編譯過程中識別和使用這些子句, 在對象程序必要的地方自動插入世紀分割邏輯,以處理2000年以後的日期數據。
由於IBM VisualAge千年語言擴展技術可以分割任何需要處理2位數日期域的程序邏輯,執行邏輯幾乎不需修改。這就可以節約您的開發資源,將其投入更高效率的應用程序開發工作中去。「千年語言擴展」能幫助用戶減少實施「開窗口」技術的編程工作量,並簡化應用程序的後續維護工作。
(2)IBM COBOL and CICS/VS Command Level Conversion Aid( CCCA )
CCCA是一種轉換輔助工具,可以將傳統的應用程序代碼轉換為當前ANSI 85標準的代碼。CCCA新具備的2000年功能可以自動實現MLE技術。另外,CCCA可以生成轉換管理報告,記錄每次修改。這不僅有助於提高開發工作效率,而且還可以跟蹤2000年修改工作的進程。
(3)HLASM Toolkit
HLASM Toolkit 是IBM High Level Assembler for MVS & VM & VSE ( HLASM ) 的一個選件,單獨報價。它提供了一套有力靈活的工具組件來改進應用程序在OS/390 , MVS/ESA,VM/ESA,和 VSE/ESA 系統上的開發和恢復。
這些優化產品工具包括:
A、結構化的程序宏
B、反匯編工具
C、程序理解工具
D、交叉參考工具
F、優化的 SuperC 比較工具
在解決千年難題時,這些工具可以幫助您:
1、恢復和重建符號匯編語言源代碼
2、分析和理解復雜的匯編語言程序
3、調試和測試
以快速、准確地完成2000年系統分析和遷移工作。
(4)Runtime Analyzer 和 Millennium Runtime Windowing Tool
IBM Runtime Analyzer (RAMO) 和 IBM Millennium RuntimeWindowing Tool (MRWT)在 IBM/390 硬體和軟體技術方面的最新創新能幫助您針對現有的應用程序 進行自動 runtime 修補。
Runtime Analyzer 和 MRWT作為VisualAge2000,IBM Year2000系列工具之一, 幫助您減少了測試所需的資源和時間,為Year2000 所需代碼的轉換提供了有效的方法。 您可以在進行2000年任務的評估、計劃、實現及測試階段使用這套工具。
這套工具將為您提供:
評估現有應用程序的2000年就緒情況
尋找和修正與2000年日期相關的代碼
執行棘手環境下的runtime修補
對關鍵應用實施2000年的應急計劃
實施戰略性的長期修補解決方案
優化您現有的 IT 投資
(5) Application Testing Collection of VisualAge 2000 Test Solution ( ATC )
一旦您開始建立測試環境和制定測試策略時,您就可以決定您的測試基本線了。 您現有的應用程序和數據是您基本線的最初來源;但是,它們經常會提供一些多餘的測試 數據。為了優化您的測試質量,您需要生成一個小型的測試集確能提供最大的覆蓋率,這就是蒸發測試床。
IBM VisualAge VisualAge 2000 測試方案提供了多種工具來幫助您建立一個最優 測試床 U餛渲校珹pplication Testing Collection (ATC),是一套非常優秀的能夠獨立使 用或者以整體方式使 用的工具組件,它充分體現了 Y2K 測試需要的獨特特性,減少了 測試的任務量而使之成為流線化 。
五項強有力的工具套件組成了ATC,協助您完成 2000 年的測試任務:源審計助手,覆蓋助手,蒸發助手,部件測試助手,和自動回歸測試工具。
源審計助手是一種「語法認知」測試工具,比較和審計源代碼在記年轉換前和 轉換後的變化。
覆蓋助手是一套代碼覆蓋工具,能夠報告出整套測試組件的覆蓋率,幫助您掌握 源代碼執行情況的監測信息和報告信息,提高已發生測試事件的工作效率。覆蓋助手可以直接針對源代碼工作。
蒸發助手可以幫助測試者生成更小的測試文件,最大限度的降低了測試循環周期而 不降低測試效率。
部件測試助手能夠在測試事件執行時,在所選的源位置處記錄下變數值的變化。它還可在測試事件執行時轉換變數值,以及根據控制文件定義的轉換規則轉換輸入的數據文件。
自動回歸測試工具能自動進行回歸分析。這是 ATC 工具中一項重要的執行過程, 它能允許不需復雜的安裝就能進行非現場測試。
(6) Teleprocessing Network Simulator ( TPNS ) 和 TPNS Test Manager (TTM)
TPNS 是一套出色的測試模擬工具,常被用於復雜的測試計劃之中。它是一種終端 和網路模擬工具,能協助您實現平滑的系統移植,增加系統的可信度,幫助您對在線系統 實現全面測試,減少生產系統的停機時間,並且大量節省資源、時間和資金,提高測試工作的效率並獲得更高的最終用戶滿意度。 您能用 TPNS 來獲知系統表現和響應時間,以 及評估網路設計,進行功能測試、自動回歸測試(Automate Regression Testing)等。 TPNS 為測試的各個階段提供了結構化的和系統化的方法,從而提高了系統測試的效率。
TPNS Test Manager ( TTM ) 是一個在測試過程中引導用戶,增強可用性的產品。 它提供了大量的管理服務以幫助 TPNS 用戶。這些服務包括:測試實例的組織,代碼生 成,任務自動化,文檔生成等。
⑼ 怎麼把BIN文件轉換為ASM文件
C51的Bin也是標准LINK出來的,反匯編就需要一些技巧,工具只能做到一些基本的工作的,以前我做過一個簡單的時鍾,就想試試反匯編,結果發現好復雜,短短幾十行匯編,如果你沒有源代碼,幾乎是不太可能直接找到其所在位置的。而且LINK之後最大的一個問題就是偏移,你只要多添一句,大部分跳轉碼的偏移都要做修改,所以只能在等長代碼情況下修改。而且有一點我是絕對確定的,你所要求的工具以現在的技術而言是沒有的,大部分工作還是得人工。 把郵箱留下,我可以給你一個反編譯器,能把bin轉成asmasm變成bin你就只能找對應的編譯器了,如KEIL不過修改可能很困難的,如果是用c51寫的,改動較大,程序再大點基本無解
⑽ 如何將c語言程序轉成匯編語言程序。
如果是VC則在編譯器命令行參數再加 /FA 則會生成匯編代碼。如果參數是 /FAs 則會同時將源碼和匯編代碼。
/FA 程序集代碼;.asm
/FAc 機器碼和程序集代碼;.cod
/FAs 源代碼和程序集代碼;.asm
/FAcs 機器碼、源代碼和程序集碼;.cod
/Fa的用法
/Fa 為編譯中的每個源代碼文件創建一個源文件.asm。
/Fa文件名 將文件名.asm 放到當前目錄中。僅在編譯單個源代碼文件時有效。
/Fa文件名.擴展名 將文件名.擴展名放到當前目錄中。僅在編譯單個源代碼文件時有效。
/Fa目錄\ 為編譯中的每個源代碼文件創建一個源文件.asm,並將其放到指定目錄中。請注意必須有後綴反斜杠。只允許使用當前磁碟上的路徑。
/Fa目錄\文件名 將文件名.asm 放到指定目錄中。僅在編譯單個源代碼文件時有效。
/Fa目錄\文件名.擴展名 將文件名.擴展名放到指定目錄中。僅在編譯單個源代碼文件時有效。
如果你是用gcc 或 g++編譯器,如dev c++則加入命令行參數 -S 即可