ARMSIM总和到stdout

时间:2017-09-11 19:02:08

标签: assembly arm

改变第一个程序,以便程序不是从类中进行计算,而是访问数字a到e,就好像它们是5个元素的数组一样。你的程序应该:

将“数组”中的每个值加倍(将其存储在适当位置的内存中) 总结加倍值并将总和存回x。 使用适当的标签将结果总和输出到stdout。

我在将总和输出到x时遇到问题,每次尝试我最终都没有得到答案。

index <- 1:nrow(data)
testindex <- sample(index, trunc(length(index)/3))
testset <- data[testindex,]
trainset <- data[-testindex,]

svm.model <- svm(as.factor(data[y.vec]) ~ ., data = trainset, cost = 100, gamma = 1)
svm.pred <- predict(svm.model, testset[,-y.vec])

table(pred = svm.pred, true = testset[,y.vec])    

1 个答案:

答案 0 :(得分:1)

str r2,[r0] @ store value of b into r2这样的商店说明显然是错误的。

b+b已经在r2中,因此注释错误(我猜是从加载中复制/粘贴)。

更重要的是,您忘记了不同数组元素的偏移量,因此您将所有值存储到数组的第一个元素中。

我不知道ARMSIM系统调用,所以IDK打印总和你做错了什么。您是否尝试在调试器中单步执行以确保第一个swi不会破坏r1?如果没有,你应该

     add   r1,r8,r5     @ r9 holds e+(a+b)-(c-d)
     str   r1,[r0,#20]  @ store result (in r9) into address of x

那么你不需要mov r1, r9,因为你首先在你想要的寄存器中生成了结果。

如果它确实是clobber r1,您应该单独留下r8r5并移动添加+存储指令(或整个计算),直到您打印固定字符串为止。