尝试在ARM中进行划分获得越来越奇怪的结果

时间:2019-11-11 23:38:21

标签: assembly arm

我正在尝试在ARM汇编中没有除法功能的情况下进行除法。我的代码如下。由于某种原因,结果始终处于2400的范围内。

我尝试将以下伪代码写入arm: 接受r0和r1中的输入     将r1加到r3直到r3超过r0     增量计数器     从r3减去r0得到余数     打印输出计数器和r3

    ldr     r3,=0
    ldr     r6,=0

   next:
    bl      getnum
    mov     r5,r0
    bl      getnum
    mov     r6,r0

    mov     r0,r5
    mov     r1,r6


    bl      mydivide
    b       next






   mydivide:
    cmp     r3,r0
    bge     rem
    add     r3,r3,r1
    add     r6,#1
    b       mydivide




   rem:
    sub     r3,r0
    mov     r2,r3
    mov     r1,r6
    ldr     r0,=output
    bl      kprintf
 output:             .asciz"%dR%d\r\n"

预期: ? 100 ? 40 2R20

实际: ? 100 ? 40 40R2340

0 个答案:

没有答案