Отделение в ARM Assembly - PullRequest
       8

Отделение в ARM Assembly

1 голос
/ 14 марта 2020

Для назначения мне нужно увеличить число до степени, введенной стандартным входом (мне нужно работать с числами с плавающей запятой). Моя идея заключалась в том, чтобы сделать циклы while со счетчиком, а если целое число отрицательное, разделить 1 на фактическое число (например, повысить его до -1). Дело в том, что я не знаю способа разделения при сборке руки, я искал, но без удачи, единственное, что я нашел, это кто-то смутно упомянул вращение. Если бы кто-то мог указать мне правильное направление, это было бы прекрасно. Кстати, я использую ARMSim v5.

Редактировать: я скомпилировал файл c с g cc -S, и в результате возникли некоторые ошибки в 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
...