ASSERT :DEF:ENDIAN_CHANGE

本文详细解析了汇编编译器在第二遍扫描中如何处理断言(ASSERT)指令及其与条件表达式的交互,特别是针对不同条件执行不同指令集的逻辑流程。

; ASSERT---在汇编编译器对汇编程序的第二遍扫描中,如果ASSERT 条件不成立,ASSERT伪指令将报告该错误信息

ASSERT :DEF:ENDIAN_CHANGE

[ ENDIAN_CHANGE
ASSERT :DEF:ENTRY_BUS_WIDTH
[ ENTRY_BUS_WIDTH=32
b ChangeBigEndian ;DCD 0xea000007
]

[ ENTRY_BUS_WIDTH=16
andeq r14,r7,r0,lsl #20 ;DCD 0x0007ea00
]

[ ENTRY_BUS_WIDTH=8
streq r0,[r0,-r10,ror #1] ;DCD 0x070000ea
]
|
b ResetHandler
]

1、ASSERT :DEF:ENDIAN_CHANGE

ASSERT 是断言伪指令,语法是:ASSERT +逻辑表达式

def 是逻辑伪操作符,格式为: :DEF:label,作用是:判断label是否定义过

2、四句指令能且只能执行一句,并且前三句若执行跳转后处理程序的最后一句也是

b ResetHandler

3、" [ " 相当于 if

" | "相当于else

" ] "

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值