0

我会尽量保持代码简洁。这是一个要求用户输入 2 个值的片段。将它们放在 xmm0 和 xmm1 中。将它们加在一起,然后将它们存储回 xmm0。不过,输出始终只是 double xmm1。

即用户输入5和7,然后输出14。什么时候应该输出12。

;Prompt user
call scanf

==========将数据移入寄存器==================

pop     r14
push    r14
movsd   xmm0, [rsp]    ;moves inputed number into SSE register xmm0
pop     r14



;Prompt user again
call scanf

==========将更多数据移入寄存器==================

pop     r15
push    r15
movsd   xmm1, [rsp]    ;moves inputed number into SSE register xmm1
pop     r15

=========数学=========

addsd    xmm0, xmm1    ;xmm0 = xmm0 + xmm1

=====打印到屏幕=====

mov         rdi, floatformat            
mov qword   rax, 1                                           
call        printf                                           
4

0 回答 0