国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASM > 正文

arm匯編之 bne與beq

2019-11-08 01:34:58
字體:
來源:轉載
供稿:網友

在網上看了一些bne和beq的區別,但是對于初學者來說,容易越看越糊涂,因此簡單介紹下:

我們先分析CPSR寄存器的Z標識位:

    cmp指令可以直接影響CPSR寄存器的Z標識位(條件位),從圖中可以看出:比較結果為0時,Z位置1,比較結果為非0時,Z位為0;

再來看一段SDRAM重定位中的子過程(不必糾結于子過程的功能):

// 清bss段,其實就是在鏈接地址處把bss段全部清零clean_bss:	ldr r0, =bss_start						ldr r1, =bss_end	cmp r0, r1			// 如果r0等于r1,說明bss段為空,直接下去	beq run_on_dram			// 清除bss完之后的地址	mov r2, #0clear_loop:	str r2, [r0], #4		// 先將r2中的值放入r0所指向的內存地址(r0中的值作為內存地址),	cmp r0, r1			// 然后r0 = r0 + 4	bne clear_loop

beq:

“beq run_on_dram” 如果 r0 - r1 = 0 ,程序跳轉到run_on_dram處,再向下執行,此時CPSR的Z標識位為1,我們可以理解為:cmp的結果為0,或者CPSR的Z標識位為1時,程序跳轉到beq 后的標簽處;

bne:

“bne clear_loop”  如果 r0 - r1  != 0 ,程序跳轉到clear_loop處,再向下執行,此時CPSR的Z標識位為0,我們可以理解為:cmp的結果為1,或者CPSR的Z標識位為0時,程序跳轉到bne 后的標簽處;

對于CPSR寄存器的條件位的 N Z C V,可以參考:關于標識位影響


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 揭阳市| 分宜县| 五大连池市| 安吉县| 上饶县| 新泰市| 青冈县| 新化县| 博乐市| 哈密市| 河西区| 阳曲县| 永年县| 博湖县| 峨眉山市| 临漳县| 汤阴县| 菏泽市| 北川| 桐柏县| 闵行区| 泸州市| 阜平县| 黄冈市| 尼玛县| 临城县| 社会| 陈巴尔虎旗| 高青县| 木里| 岐山县| 稷山县| 云浮市| 额尔古纳市| 凌海市| 沁阳市| 宁都县| 无锡市| 滦南县| 崇礼县| 桦甸市|