① 單片機源代碼C語言怎麼轉化回匯編語言啊,就是帶MOV,JMP的種
幫你轉了
ORG 0000H
DB 02H
NOP
L0002H:
CPL A
RR A
INC R5
NOP
NOP
NOP
NOP
MOV R7, A
MOV R7, A
LJMP L0180H
L000EH:
MOV 89H, #01H
MOV 8CH, #0F0H
MOV 8AH, #60H
SETB 88H.4
SETB 0A8H.1
SETB 0A8H.7
CLR A
MOV 08H, A
MOV 09H, A
MOV 80H, #14H
MOV 0CH, A
MOV R6, 0AH
MOV R7, 0BH
MOV R4, A
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
L0043H:
CLR C
MOV A, 0BH
SUBB A, #14H
MOV A, 0AH
SUBB A, #00H
JNC L0052H
MOV R7, #01H
SJMP L0054H
L0052H:
MOV R7, #00H
L0054H:
JB 0B0H.1, L005BH
MOV R6, #01H
SJMP L005DH
L005BH:
MOV R6, #00H
L005DH:
MOV A, R7
ANL A, R6
JZ L008CH
MOV R3, #0F5H
L0063H:
DJNZ R3, L0063H
JB 0B0H.1, L008CH
MOV A, 09H
XRL A, #09H
ORL A, 08H
JNZ L007FH
INC 0BH
MOV A, 0BH
JNZ L0078H
INC 0AH
L0078H:
CLR A
MOV 08H, A
MOV 09H, A
SJMP L0087H
L007FH:
INC 09H
MOV A, 09H
JNZ L0087H
INC 08H
L0087H:
INC 80H
L0089H:
JNB 0B0H.1, L0089H
L008CH:
JB 0B0H.0, L00D4H
MOV R3, #0F5H
L0091H:
DJNZ R3, L0091H
JB 0B0H.0, L00D4H
MOV A, 09H
ORL A, 08H
JNZ L00ACH
MOV A, 0BH
DEC 0BH
JNZ L00A4H
DEC 0AH
L00A4H:
MOV 08H, #00H
MOV 09H, #09H
SJMP L00B4H
L00ACH:
MOV A, 09H
DEC 09H
JNZ L00B4H
DEC 08H
L00B4H:
CLR C
MOV A, 0BH
SUBB A, #02H
MOV A, 0AH
SUBB A, #00H
JNC L00CFH
MOV 0AH, #00H
MOV 0BH, #02H
CLR A
MOV 08H, A
MOV 09H, A
DB 75H, 80H
L00CCH:
DEC A
SJMP L00D1H
L00CFH:
DEC 80H
L00D1H:
JNB 0B0H.0, L00D1H
L00D4H:
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
LJMP L0043H
L00F4H:
MOV R0, #7FH
CLR A
L00F7H:
MOV @R0, A
DJNZ R0, L00F7H
MOV 81H, #0FH
LJMP L013BH
L0100H:
LJMP L000EH
L0103H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0107H:
CLR A
MOVC A, @A+DPTR
INC DPTR
JC L010FH
MOV @R0, A
SJMP L0110H
L010FH:
MOVX @R0, A
L0110H:
INC R0
DJNZ R7, L0107H
SJMP L013EH
L0115H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
ANL A, #07H
ADD A, #0CH
XCH A, R0
CLR C
RLC A
SWAP A
ANL A, #0FH
ORL A, #20H
XCH A, R0
MOVC A, @A+PC
JC L012DH
CPL A
ANL A, @R0
SJMP L012EH
L012DH:
ORL A, @R0
L012EH:
MOV @R0, A
DJNZ R7, L0115H
SJMP L013EH
AJMP L0002H
INC A
INC R0
JBC 20H, L017AH
DB 80H
L013BH:
MOV DPTR, #0003H
L013EH:
CLR A
MOV R6, #01H
MOVC A, @A+DPTR
JZ L0100H
INC DPTR
MOV R7, A
ANL A, #3FH
JNB 0E0H.5, L0154H
ANL A, #1FH
MOV R6, A
CLR A
MOVC A, @A+DPTR
INC DPTR
JZ L0154H
INC R6
L0154H:
XCH A, R7
ANL A, #0C0H
ADD A, 0E0H
JZ L0103H
JC L0115H
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R2, A
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0165H:
CLR A
MOVC A, @A+DPTR
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
MOVX @DPTR, A
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
L017AH:
DJNZ R7, L0165H
DJNZ R6, L0165H
SJMP L013EH
L0180H:
PUSH 0E0H
PUSH 83H
PUSH 82H
PUSH 0D0H
MOV 0D0H, #00H
MOV 8CH, #0F0H
MOV 8AH, #60H
MOV A, 0CH
JNZ L01AFH
MOV A, 0DH
JZ L01CBH
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
SJMP L01CBH
L01AFH:
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
MOV A, 0CH
CJNE A, #01H, L01CBH
ORL 90H, #80H
L01CBH:
INC 0CH
MOV A, 0CH
CJNE A, #03H, L01D5H
MOV 0CH, #00H
L01D5H:
POP 0D0H
POP 82H
POP 83H
POP 0E0H
RETI
L01DEH:
CJNE R4, #00H, L01ECH
CJNE R6, #00H, L020DH
MOV A, R7
MOV 0F0H, R5
DIV AB
MOV R7, A
MOV R5, 0F0H
RET
L01ECH:
CLR A
XCH A, R4
MOV R0, A
MOV 0F0H, #08H
L01F2H:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R4
RLC A
MOV R4, A
MOV A, R6
SUBB A, R5
MOV A, R4
SUBB A, R0
JC L0206H
MOV R4, A
MOV A, R6
SUBB A, R5
MOV R6, A
INC R7
L0206H:
DJNZ 0F0H, L01F2H
CLR A
XCH A, R6
MOV R5, A
RET
L020DH:
MOV A, R5
MOV R0, A
MOV 0F0H, A
MOV A, R6
DIV AB
JB 0D0H.2, L0232H
MOV R6, A
MOV R5, 0F0H
MOV 0F0H, #08H
L021CH:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R5
RLC A
MOV R5, A
JC L022BH
SUBB A, R0
JNC L022DH
DJNZ 0F0H, L021CH
RET
L022BH:
CLR C
SUBB A, R0
L022DH:
MOV R5, A
INC R7
DJNZ 0F0H, L021CH
L0232H:
RET
ADDC A, R7
INC @R0
ANL A, R3
ORL A, R7
XRL A, @R0
XRL A, R5
MOV R5, #07H
MOV R7, #6FH
MOV @R1, #7CH
ADDC A, R1
ANL A, R6
MOV R1, #71H
NOP
MOV R6, A
MOV R5, A
MOV R3, A
MOV R7, A
END
② 按鍵精靈源代碼改成易語言
.版本 2
.DLL命令 尋找頂級窗口, 整數型, "User32.dll", "FindWindowA"
.參數 窗口類名, 文本型
.參數 窗口文本, 文本型
.DLL命令 投遞消息, 整數型, "User32.dll", "PostMessageA"
.參數 窗口句柄, 整數型
.參數 消息類別, 整數型
.參數 參數一, 整數型
.參數 參數二, 整數型
.版本 2
.子程序 _按鈕1_被單擊.局部變數 Hwnd, 整數型
Hwnd = 尋找頂級窗口 (「」, 「夢幻西遊ONLINE - (浙江4區[百丈漈] - ′白鼓驚[21114524])」) ' 獲取目標窗口句柄
投遞消息 (Hwnd, 260, 51, 536870912) ' 發送Alt+3組合鍵消息
最簡單的代碼,希望採納!
③ 怎樣將匯編語言轉換為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 即可
④ 有沒有將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++代碼對應的匯編語言文件。
⑤ 如何把C語言源碼,轉換成易語言源碼。
可能么?C語言是C怨言。易語言是易語言。再說 C語言 也是中文的。易語言 只是 個國產軟體。比不上C語言的
⑥ 語言轉換器:實現將BASIC源程序轉換為C語言源程序
您好,這個幾乎是不可能的 :
一個是行編譯的 一個是按文件編譯的,
語法上和類型上也有很大的區別 ,
基本無法逐一轉換,
而如果編譯basic再反編譯成C 那麼又很可能出錯,
所以 你還是放棄吧。