c語言反匯編
1. keil4調試時出現的是c語言+反匯編語言 但c語言不能設置斷點
你看看優化選項,你要調試的話設置為不優化或者最低優化,還有就是匯編和c都在一個c文件中的話也可能出現這個問題,要是還是不行你就把你要打斷點的c語句剪切到另外一個c文件中去。
2. 什麼軟體能將C語言的執行文件反匯編為匯編源代碼
可以使用Linux下的objmp命令來反匯編。
常用命令:
objmp -x obj:以某種分類信息的形式把目標文件的數據組成輸出;<可查到該文件的的所有動態庫>
objmp -t obj:輸出目標文件的符號表
objmp -h obj:輸出目標文件的所有段概括
objmp -j ./text/.data -S obj:輸出指定段的信息(反匯編源代碼)
objmp -S obj:輸出目標文件的符號表,當gcc -g時列印更明顯
objmp -j .text -Sl stack1 | more
-S 盡可能反匯編出源代碼,尤其當編譯的時候指定了-g這種調試參數時,效果比較明顯。隱含了-d參數。
-l 用文件名和行號標注相應的目標代碼,僅僅和-d、-D或者-r一起使用
使用-ld和使用-d的區別不是很大,在源碼級調試的時候有用,要求編譯時使用了-g之類的調試編譯選項。
-j name 僅僅顯示指定section的信息
3. 怎樣將C語言語句轉換成匯編指 用什麼軟體或有沒有相關的書籍
你可以像他們說的那樣,用反編譯工具對目標程序進行反編譯,好處是直接針對目標,而且無須源碼,當然咯,壞處就是你看到的匯編指令引用變數是直接引用的地址,所以可讀行比較差,最好的辦法也是最簡潔的辦法就是不用反編譯程序,而直接用C語言的編譯器,在幾乎所有的編譯器中都有專門的參數可以直接得到C語言對應的匯編指令,因為大部分C語言內部會有一個匯編程序,C程序先轉化為匯編再匯編成可執行程序的,所以你只許指定編譯器的生成匯編文件的參數即可,比如Gcc用參數-S指定,具體可參照相應的編譯器
4. 一段C語言 反匯編代碼,要求詳解每句含義
and $0xfffffff0,%esp 將esp和16進制的fffffff0進行與運算,
cmp $0xfffff000,%eax 將fffff000減去eax,但只改變標志位,而不影響兩個數的大小,一般CMP指令後面會跟一個跳轉指令,也可以說CMP指令是比較指令
neg %ebx 求EBX相反數的補碼
nop指令的機器碼是90,也就是空指令,不起作用的,sub $0x8,%esp這條指令是用於平衡堆棧的,如樓上所說,你可以當它是空氣..有些匯編代碼不用刻意去看懂,掃一眼知道是干什麼用的就行了,有的就得仔細推敲它的含意和它起的作用
5. c語言怎麼反編譯啊,教教我
一般,在ide中選擇單步調試就可以看到匯編代碼.另外使用ollydbg或windbg都可以帶源碼調試.靜態反匯編可以使用w32asm,或ida.
6. C語言怎樣轉換成匯編語言
keilc裡面,如果單片機c語言編譯完成後,可以進入debug模擬模式,那麼打開disassembly
windows窗口,就可以看到c及對應的匯編。
7. c語言反匯編代碼解釋
a1是你定義的變數,char類型,佔1個位元組,所以byte ptr, [a1]就是取出a1的內容
連起來就是,以一個位元組的方式取出[a1]的內容
至於為什麼是a1, 這個是vc為了好觀察才這么做的,如果你拿ollydbg看的話,那麼只會是
mov byte ptr [ebp-XX], 61h
8. C語言寫的程序 怎麼反匯編成匯編語言
在keilc中,單片機的C語言程序可以再DEBUG模式中得到對應的匯編程序。步驟如下:
1、建立工程,導入C文件代碼,編譯生成hex文件。
3、點擊View--Disassembly Window調出匯編窗口,如上圖。
通過以上步驟就可以看到與C對應的匯編程序了。
9. 反匯編單步的執行過程和對象。反匯編在C語言編寫軟體中到底有何用啊
執行過程?就是用匯編的語言,描述程序執行時,哥哥寄存器的具體數據操作,和相關信號量的具體變化。對程序中數據的追蹤和具體執行過程有一定的了解,也就是說,你能通過反匯編,看到底層處理和寄存器是如何按程序存值,取值,處理的!
10. 單片機源代碼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