首先匯編程序轉(zhuǎn)化為機(jī)器碼,才能在機(jī)器內(nèi)運(yùn)行。
首先我們對上面的裸機(jī)的代碼中生的.elf文件進(jìn)行反匯編:
start.elf: file format elf32-littlearm
Disassembly of section .text:
50008000 <_start>:
.text
.global _start
_start:
@ldr和str的操作
mov r0,#0xff
50008000: e3a000ff mov r0, #255 ; 0xff
str r0,[r1]
50008004: e5810000 str r0, [r1]
ldr r2,[r1]
50008008: e5912000 ldr r2, [r1]
@程序狀態(tài)字寄存器訪問
mrs r0,cpsr
5000800c: e10f0000 mrs r0, CPSR
orr r0,#0b100
50008010: e3800004 orr r0, r0, #4 ; 0x4
msr cpsr,r0
50008014: e129f000 msr CPSR_fc, r0
@ror:循環(huán)右移
mov r1,#0b11
50008018: e3a01003 mov r1, #3 ; 0x3
mov r1,r1,ror#1
5000801c: e1a010e1 ror r1, r1, #1
@lsl:左移
mov r1,#0b11
50008020: e3a01003 mov r1, #3 ; 0x3
mov r1,r1,lsl#2
50008024: e1a01101 lsl r1, r1, #2
@bl指令:帶鏈接跳轉(zhuǎn)
bl func1
50008028: eb000005 bl 50008044 @b指令: mov r1,#6 5000802c: e3a01006 mov r1, #6 ; 0x6 mov r2,#7 50008030: e3a02007 mov r2, #7 ; 0x7 cmp r1,r2 50008034: e1510002 cmp r1, r2 bgt branch1@gt表示大于的時候跳轉(zhuǎn) 50008038: ca000003 bgt 5000804c add r3,r1,r2 5000803c: e0813002 add r3, r1, r2 b end 50008040: ea000002 b 50008050 50008044 func1: mov r1,#23 50008044: e3a01017 mov r1, #23 ; 0x17 mov pc,lr@函數(shù)的返回,固定格式。 50008048: e1a0f00e mov pc, lr 5000804c branch1: sub r3,r1,r2 5000804c: e0413002 sub r3, r1, r2 50008050 end: nop 50008050: e1a00000 nop (mov r0,r0) @tst指令: mov r1,#0b101 50008054: e3a01005 mov r1, #5 ; 0x5 tst r1,#0b01 50008058: e3110001 tst r1, #1 ; 0x1 mov r1,#0b101 5000805c: e3a01005 mov r1, #5 ; 0x5 tst r1,#0b10 50008060: e3110002 tst r1, #2 ; 0x2 @cmp指令的操作: mov r1,#2 50008064: e3a01002 mov r1, #2 ; 0x2 cmp r1,#1 50008068: e3510001 cmp r1, #1 ; 0x1 mov r1,#2 5000806c: e3a01002 mov r1, #2 ; 0x2 cmp r1,#3 50008070: e3510003 cmp r1, #3 ; 0x3 mov r1,#2 50008074: e3a01002 mov r1, #2 ; 0x2 cmp r1,#2 50008078: e3510002 cmp r1, #2 ; 0x2 @bic:位清除指令 mov r1,#0b1101011 5000807c: e3a0106b mov r1, #107 ; 0x6b bic r2,r1,#0b1000011 50008080: e3c12043 bic r2, r1, #67 ; 0x43 @and的用法:邏輯與 mov r1,#5 50008084: e3a01005 mov r1, #5 ; 0x5 and r2,r1,#0 50008088: e2012000 and r2, r1, #0 ; 0x0 mov r1,#5 5000808c: e3a01005 mov r1, #5 ; 0x5 and r2,r1,#1 50008090: e2012001 and r2, r1, #1 ; 0x1 @add:加法: add r1,r0,r2 50008094: e0801002 add r1, r0, r2 @sub:減法,注意被減數(shù)不能是立即數(shù) mov r2,#4 50008098: e3a02004 mov r2, #4 ; 0x4 sub r0,r2,#2 5000809c: e2420002 sub r0, r2, #2 ; 0x2 mov r1,#3 500080a0: e3a01003 mov r1, #3 ; 0x3 sub r3,r1,r0 500080a4: e0413000 sub r3, r1, r0 @這是注釋,mov指令 mov r1,#6 500080a8: e3a01006 mov r1, #6 ; 0x6 mov r2,r1 500080ac: e1a02001 mov r2, r1 mov r3,#10 500080b0: e3a0300a mov r3, #10 ; 0xa @mvn:傳值取反的值 mvn r0,#4 @r0:4取反變?yōu)?5 500080b4: e3e00004 mvn r0, #4 ; 0x4 mvn r1,#0b111000 500080b8: e3e01038 mvn r1, #56 ; 0x38 mvn r2,r1 @r2:0b111000 500080bc: e1e02001 mvn r2, r1 Disassembly of section .ARM.attributes: 00000000 <.ARM.attributes>: 0: 00001741 andeq r1, r0, r1, asr #14 4: 61656100 cmnvs r5, r0, lsl #2 8: 01006962 tsteq r0, r2, ror #18 c: 0000000d andeq r0, r0, sp 10: 00543405 subseq r3, r4, r5, lsl #8 14: 01080206 tsteq r8, r6, lsl #4 Disassembly of section .debug_line: 00000000 <.debug_line>: 0: 00000060 andeq r0, r0, r0, rrx 4: 001e0002 andseq r0, lr, r2 8: 01020000 tsteq r2, r0 c: 000d0efb strdeq r0, [sp], -fp 10: 01010101 tsteq r1, r1, lsl #2 14: 01000000 tsteq r0, r0 18: 00010000 andeq r0, r1, r0 1c: 72617473 rsbvc r7, r1, #1929379840 ; 0x73000000 20: 00532e74 subseq r2, r3, r4, ror lr
上一篇:4.協(xié)處理器訪問指令
下一篇:2.匯編代碼的簡單實(shí)現(xiàn)
推薦閱讀最新更新時間:2025-05-02 02:59




設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動器設(shè)計
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時處理器M7000
- A4403 谷值電流模式控制降壓轉(zhuǎn)換器的典型應(yīng)用
- LT3473,節(jié)省空間的 OLED 偏置電源
- RT9288A PWM 升壓 DC/DC 控制器恒壓輸出的典型應(yīng)用,用于白光 LED 驅(qū)動器
- AD587KRZ-REEL低功耗電壓基準(zhǔn)、12位CMOS DAC應(yīng)用的典型應(yīng)用電路
- 使用 Richtek Technology Corporation 的 RT7237A 的參考設(shè)計
- LTC2946CMS-1 具有板載 ADC 和 I2C 的寬范圍電源、電荷和能量監(jiān)視器的典型應(yīng)用
- 電子負(fù)載
- DER-602 - 使用 InnoSwitch3-CP 和 HiperPFS-4 的 100 W USB PD Type-C 電源
- 使用 Analog Devices 的 ADF7021BCPZ 的參考設(shè)計
- SECO-RSL10-TAG-GEVB:RSL10 資產(chǎn)標(biāo)簽
- 阻旋式料位開關(guān)有哪些優(yōu)勢
- stm32F4使用溫濕度傳感器模塊-->DHT11
- 51單片機(jī)實(shí)現(xiàn)兩片聯(lián)級74HC595驅(qū)動16個LED燈
- iTOP-4412開發(fā)板-實(shí)戰(zhàn)教程-ssh服務(wù)器移植到arm開發(fā)板
- 出貨達(dá)200億顆圣邦股份2021年完美收官
- 財政部原副部長朱光耀:全球芯片供應(yīng)鏈被分割是非常危險思路
- 頻譜分析儀如何測量信號失真?
- 從sys/power/state分析并實(shí)現(xiàn)S3C2416的睡眠和喚醒
- 貿(mào)澤開售Connected Development XCVR開發(fā)板讓無線物聯(lián)網(wǎng)設(shè)計更簡單
- 自動駕駛卡車公司Aurora重新引入駕駛員
- 全固態(tài)電池新標(biāo)準(zhǔn)出臺,明確定義解決行業(yè)界定義及測試難題
- 長城死磕增程!下代平臺用6C充電,插混純電續(xù)航竟然破400公里!
- 寶馬全固態(tài)電池電動汽車上路測試
- 基于數(shù)采系統(tǒng)的車載A2B信號測試解決方案
- 從夢想到落地:固態(tài)激光雷達(dá)的十年發(fā)展史
- AI 座艙芯片,走入全民時代
- 2025年1-3月ADAS供應(yīng)商裝機(jī)量排行榜:自主廠商引領(lǐng)技術(shù)融合新趨勢
- 又一廠商官宣大動作,汽車零部件企業(yè)緣何涌向機(jī)器人領(lǐng)域?
- 總規(guī)模50億!蘇州吳中區(qū)成立機(jī)器人專項基金