假设R0中所有人的成绩,根据成绩计算学分绩点保存到R1寄存器,规则如下,成绩小于60的,绩点就记为0,成绩在60到85的,记为绩点1,其他的记为绩点2
时间: 2024-03-05 19:48:01 浏览: 73
学分绩点算法
好的,您需要一个汇编程序来实现这个功能,以下是一个使用ARM汇编实现的成绩绩点计算程序:
```
AREA app, CODE, READONLY
ENTRY
LDR R0, =SCORES
LDR R2, =SIZE
MOV R1, #0
LOOP
LDR R3, [R0], #4
CMP R3, #60
BLT GRADE_0
CMP R3, #85
BLE GRADE_1
MOV R3, #2
B NEXT
GRADE_0
MOV R3, #0
B NEXT
GRADE_1
MOV R3, #1
NEXT
ADD R1, R1, R3
SUBS R2, R2, #1
BNE LOOP
END
SCORES
DCD 75, 90, 45, 80, 70, 55, 65
SIZE
DCD 7
```
该程序首先将保存成绩的数组SCORES的首地址加载到R0寄存器中,将数组的长度SIZE加载到R2寄存器中,将R1寄存器清零。然后使用循环语句依次读取数组中的每个成绩,根据成绩的大小计算对应的绩点,并将绩点累加到R1寄存器中。最后,程序结束并跳转到END标签处。请注意,该程序仅作为示例,实际使用时需要根据具体情况进行修改,例如可以将计算出的绩点保存到其他寄存器或内存中,或者进行其他操作。此外,该程序中的数组SCORES和SIZE是示例数据,实际使用时需要根据具体情况进行修改。
阅读全文