Я новичок в программировании сборки ARM с использованием Keil 4, я пытался собрать две подпрограммы в файлах сборки. Одна из подпрограмм вызывает другую.
Вызов (ветвление) подпрограммы, помещенной в тот же файл, работает, но если одна подпрограмма помещена в отдельный файл, появляется следующее сообщение об ошибке
file2.s(8): error: A1163E: Unknown opcode SUBROUTE , expecting opcode or Macro
Код добавлен ниже
ФАЙЛ 1
;; Директивы PRESERVE8 THUMB UNIFIED
AREA RESET, DATA, READONLY
EXPORT __Vectors
__Vectors
DCD 0x20001000 ; stack pointer value when stack is empty
DCD Reset_Handler ; reset vector
ALIGN
AREA MYCODE, CODE, READONLY
IMPORT SUBROUTE
ENTRY
EXPORT Reset_Handler
Reset_Handler
MOV R1, #0x0A ; Set loop counter
MOV R0,#00 ;intilaize resultant register
loop1 CBZ R1,FINISH ; if loop counter = 0 then exit the loop
BL SUBROUTE
B loop1 ; next loop
FINISH B FINISH ; keep looping
END ; end of program
ФАЙЛ 2:
AREA subroutine, CODE, READONLY
EXPORT SUBROUTE
SUBROUTE ADD R0,R1 ; Addition opertaion
SUB R1, #1 ; loop counter decrement
BX lr
END