assembly 使用keil IDE将子程序放置在arm汇编中的单独文件中

eoxn13cs  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(104)

我是使用Keil 4进行ARM汇编编程的新手,我一直在尝试在汇编文件中汇编两个子例程。其中一个子程序调用另一个子程序。
调用(分支)放置在同一文件中的子例程可以工作,但是,如果一个子例程被放置在一个单独的文件中,则出现以下错误消息
第一个月
代码如下所示

文件1

;;指令PRESERVE 8 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

6tr1vspr

6tr1vspr1#

Armasm标签必须从第一列开始。确保在定义SUBROUTEFINISH的行中,在它们之前没有前导空格/制表符。另一方面,指令(如AREAIMPORT)不能从第一列开始,并且必须有一些前导空格。

相关问题