用Keil 编译汇编程序时 的问题
程序如下,是关于多字节BCD码十进制移位。能ORG0100HMOVR7,#03HMOVR0,#30HMOV30H,#47HMOV31H,#36HMOV32H,#21HBR...
程序如下,是关于多字节BCD码十进制移位。
能 ORG 0100H
MOV R7,#03H
MOV R0,#30H
MOV 30H,#47H
MOV 31H,#36H
MOV 32H,#21H
BRLN: MOV A,R7
MOV R2,A
ADD A,R0
MOV R0,A
MOV R3,#0
BRL1: DEC R0
MOV A,@R0
SWAP A
MOV @RO,A
MOV A,@RO
MOV R3,A
DJNZ R2,BRL1
END
出现在错误信息如下:
Build target 'Target 1'
assembling BCD10.asm...
linking...
BL51 BANKED LINKER/LOCATER V6.00 - SN: K1DUC-U00W91
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2005
"BCD10.obj"
TO "BCB10"
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: BCD10.obj
Target not created
希望高手能指点下~~ 展开
能 ORG 0100H
MOV R7,#03H
MOV R0,#30H
MOV 30H,#47H
MOV 31H,#36H
MOV 32H,#21H
BRLN: MOV A,R7
MOV R2,A
ADD A,R0
MOV R0,A
MOV R3,#0
BRL1: DEC R0
MOV A,@R0
SWAP A
MOV @RO,A
MOV A,@RO
MOV R3,A
DJNZ R2,BRL1
END
出现在错误信息如下:
Build target 'Target 1'
assembling BCD10.asm...
linking...
BL51 BANKED LINKER/LOCATER V6.00 - SN: K1DUC-U00W91
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2005
"BCD10.obj"
TO "BCB10"
*** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUND
FILE: BCD10.obj
Target not created
希望高手能指点下~~ 展开
2个回答
展开全部
我帮你修改好了,你程序的错误就是把数字的'0'写成了字符的'o',这里要细心一写,因为在键盘上'o'的位置与数字'0'很近,我有的时候也可能会因为写的快而搞错了,,,,不过在keil中的默认设置,如果是合法的寄存器,会变成黑体(我一看字体,就找到你的错误了)
我这里调试的结果是,(30H)上的0x47,变成了0x74,(31H)上的0x36变成了0x63,(32H)上的0x21变成了0x12,,,,,,不知道你要的是不是这样的效果.个人修改的程序如下:
ORG 0000H ;这里的3条语句是为了调试使用
LJMP MAIN
ORG 0100H
MAIN:
MOV R7,#03H
MOV R0,#30H
MOV 30H,#47H
MOV 31H,#36H
MOV 32H,#21H
BRLN: MOV A,R7
MOV R2,A
ADD A,R0
MOV R0,A
MOV R3,#0
BRL1: DEC R0
MOV A,@R0
SWAP A
MOV @R0,A ;你原来把这里的R0,写成了RO(而且你这里'o'是大写,一下子更难找出来,幸亏你的程序短,你一下就找出来了)
MOV A,@R0 ;这里你错误原因同上
MOV R3,A
DJNZ R2,BRL1
END
我这里调试的结果是,(30H)上的0x47,变成了0x74,(31H)上的0x36变成了0x63,(32H)上的0x21变成了0x12,,,,,,不知道你要的是不是这样的效果.个人修改的程序如下:
ORG 0000H ;这里的3条语句是为了调试使用
LJMP MAIN
ORG 0100H
MAIN:
MOV R7,#03H
MOV R0,#30H
MOV 30H,#47H
MOV 31H,#36H
MOV 32H,#21H
BRLN: MOV A,R7
MOV R2,A
ADD A,R0
MOV R0,A
MOV R3,#0
BRL1: DEC R0
MOV A,@R0
SWAP A
MOV @R0,A ;你原来把这里的R0,写成了RO(而且你这里'o'是大写,一下子更难找出来,幸亏你的程序短,你一下就找出来了)
MOV A,@R0 ;这里你错误原因同上
MOV R3,A
DJNZ R2,BRL1
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询