目前正在编写汇编语言作业。我最初在 MARS 编译器中启用了伪对其进行编码,然后将伪命令一一翻译。目前我无法收到错误消息“无效的语言元素:[str1]”。这只是我代码的一小部分。
1|.data
2|val1: .word 1 #0x10010000
3|val2: .word 2 #0x10010004
4|val3: .word 3 #0x10010008
5|name: .asciiz "Jacob McDonald" #0x1001000C length 15
6|str1: .asciiz "Enter a number: " #0x1001001B length 17
7|newln: .asciiz "\n" #0x1001002C
8|.globl main
9|.text
10|main:
11|addi $16, $0, 23 #Load 23 into $s0
12|addi $2, $0, 4 #Set syscall command 4, print string
13|lui $1, 4097 [str1] #Load string to be printed to queue
14|ori $4, $1, 27 [str1]
15|syscall #syscall print string str1
我不确定我需要修复什么,因为如果我通过 qtSpim 运行代码会正常执行,但不会执行并且会转发错误消息“Invalid Language Element: [str1]”
错误是我如何编写第 13 行和第 14 行引起的吗?我是否需要处理实际的十六进制地址而不是 .asciiz 名称?