LPC2103中的ARM7不支持CLZ吗?

时间:2012-11-20 07:06:40

标签: assembly embedded arm gnu-toolchain

我只是谷歌搜索了几个小时左右,但如果有人快速回答这个问题,我想回到编程。这是我的错误:

jcomeau@intrepid:~/rentacoder/jcomeau/armmite$ make
/usr/local/bin/preasm.tcl minimal.asm minimal.s 
"/usr/arm-linux-gnueabi/bin/as" -mcpu=arm7tdmi-s -mapcs-32 \
     -gstabs -ahls=minimal.lst  -o minimal.o minimal.s
minimal.s: Assembler messages:
minimal.s:183: Error: selected processor does not support `clz r0,r0'
make: *** [minimal.o] Error 1
rm minimal.s

我也尝试过-mcpu = arm7tdmi,这是Coridium用于ARMmite v.2的代码,我正在使用的主板。但他们显然在代码中没有任何clz指令。我的问题是,应该它的工作原理,只是我的汇编器没有意识到它,或者这个芯片真的没有实现CLZ?

[更新:根据http://www.keil.com/dd/chip/3974.htm,arm7tdmi-s是正确的架构规范]

[进一步更新:我用.word 0xe16f0f10手动编写了指令,而不是预期的未定义指令错误,我得到了数据中止。奇怪。]

1 个答案:

答案 0 :(得分:3)

ARMv5中引入了CLZ指令。 ARM7TDMI和ARM9没有此指令。