首页 > 解决方案 > ARM 汇编中的划分

问题描述

对于分配,我需要将数字提高到标准输入输入的幂(我需要使用浮点数)。我的想法是使用计数器进行 while 循环,如果整数为负数,则将 1 除以实际数字(例如将其提高到 -1)。问题是,我不知道在手臂组装中划分的方法,我已经搜索过但没有运气,我唯一发现的是有人含糊地提到了旋转。如果有人能指出我正确的方向,那将是完美的。顺便说一句,我正在使用 ARMSim v5。

编辑:我用 gcc -S 编译了 ac 文件,输出在 ARMSim 中抛出了一些错误,我不明白为什么:

    .file   "xd.c"
    .text
    .globl  x
    .data
    .align 4
    .type   x, @object
    .size   x, 4
x:
    .long   6
    .text
    .globl  main
    .type   main, @function
main:
.LFB0:
    .cfi_startproc
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register 6
    movl    x(%rip), %eax
    movl    %eax, %edx
    shrl    $31, %edx
    addl    %edx, %eax
    sarl    %eax
    movl    %eax, x(%rip)
    movl    x(%rip), %eax
    popq    %rbp
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
.LFE0:
    .size   main, .-main
    .ident  "GCC: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0"
    .section    .note.GNU-stack,"",@progbits

标签: assemblyarmdivision

解决方案


推荐阅读