求教下KeilARM下的汇编问题
本帖最后由 zyp000 于 2012-4-1 23:55 编辑初学ARM,使用KeilARM写了一段小测试程序,插入到Keil生成的启动代码中,放在跳入__main之前,想了解一下MMU,
可是,一些基本汇编指令,出现编译错误,向各位求教一下。
1. 关于跳转循环的问题,编译时都出错,
loop1 行错误提示 Scr\S3C2440.s(1111): error: A1163E: Unknown opcode loop1 , expecting opcode or Macro
loop2: 行错误提示 Scr\S3C2440.s(1111): error: A1163E: Unknown opcode loop1 , expecting opcode or Macro
02 行错误提示 Scr\S3C2440.s(1124): error: A1137E: Unexpected characters at end of line
额~~这个解决了,标识符 要靠左边顶格写。
2. 操作协处理器的4条语句都有同样的错误提示 Scr\S3C2440.s(1121): error: A1577E: Bad coprocessor name symbol
尝试了把P15改成CP15,还是有错
已解决,字母得用小写……
3.MOVR0,#2 可以编译通过
MOVR0,#0b10就报错了
这个是为什么呢?
具体代码和出错信息如下:
MOV R0,#0x0
MOV R1,#0x30000000
MOV R2,#0x400000
loop1 LDR R3,,#4
STR R3,,#4
SUB R2,R2,#4
BNE loop1
MOV R0,#0xFFFFFFFF
MCR P15,0,R0,C3,C0,0
LDR R0,=( 0x32000000 - 16384 )
MCR P15,0,R0,C2,C0,0
MOV R1,#16384
MOV R2,#2
loop2: STR R2,,#4
ADD R2,R2,#(1<<14)
SUB R1,R1,#4
BNE loop2
LDR R0,=( 0x32000000 - 16384 )
MOV R1,#32
MOV R2,#0x30000000
ORR R2,R2,#2
02 STR R2,,#4
ADD R2,R2,#(1<<14)
SUB R1,R1,#1
BNE %B02
MRC CP15,0,R0,C1,C0,0
ORR R0,R0,#01
MCR CP15,0,R0,C1,C0,0
Rebuild target 'Target 1'
compiling main.c...
assembling S3C2440.s...
Scr\S3C2440.s(1111): error: A1163E: Unknown opcode loop1 , expecting opcode or Macro
Scr\S3C2440.s(1118): error: A1577E: Bad coprocessor name symbol
Scr\S3C2440.s(1121): error: A1577E: Bad coprocessor name symbol
Scr\S3C2440.s(1124): error: A1163E: Unknown opcode loop2: , expecting opcode or Macro
Scr\S3C2440.s(1133): error: A1137E: Unexpected characters at end of line
Scr\S3C2440.s(1138): error: A1577E: Bad coprocessor name symbol
Scr\S3C2440.s(1140): error: A1577E: Bad coprocessor name symbol
Target not created {:sad:}{:smile:} {:victory:}{:lol:} {:smile:}{:smile:} 我也遇到类似问题了,请问楼主解决了吗、可否告知解决方法? gyl_zbk 发表于 2012-5-17 10:11 static/image/common/back.gif
我也遇到类似问题了,请问楼主解决了吗、可否告知解决方法?
1. 关于跳转循环的问题,编译时都出错,
loop1 行错误提示 Scr\S3C2440.s(1111): error: A1163E: Unknown opcode loop1 , expecting opcode or Macro
loop2: 行错误提示 Scr\S3C2440.s(1111): error: A1163E: Unknown opcode loop1 , expecting opcode or Macro
02 行错误提示 Scr\S3C2440.s(1124): error: A1137E: Unexpected characters at end of line
错误原因:这个解决了,标识符 要靠左边顶格写。
2. 操作协处理器的4条语句都有同样的错误提示 Scr\S3C2440.s(1121): error: A1577E: Bad coprocessor name symbol
尝试了把P15改成CP15,还是有错
错误原因:字母得用小写……
3.MOVR0,#2 可以编译通过
MOVR0,#0b10就报错了
这个是为什么呢?
错误原因(未验证):汇编中的二进制数表示应为10b,0b10的写法应该是错误的。
zyp000 发表于 2012-5-17 11:59 static/image/common/back.gif
1. 关于跳转循环的问题,编译时都出错,
loop1 行错误提示 Scr\S3C2440.s(1111): error: A11 ...
好的,谢谢了 0b10是不是要加个0x?
页:
[1]