Bìn*_*yên 3 x86 assembly masm32 fasm
这是我的问题:
我尝试使用scanf(in msvcrt.dll)输入单个浮点值flat assembler然后我写一个简单的"scanf程序",就像这样(in C):
#include <stdio.h>
int main() {
float a;
scanf("%f", &a);
printf("Just input: %f", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后使用cl.exeto /FA参数编译生成如下所示的程序集文件:
lea eax, DWORD PTR _a$[ebp]
push eax
push OFFSET $SG2935
call _scanf
add esp, 8
; Line 8
cvtss2sd xmm0, DWORD PTR _a$[ebp]
sub esp, 8
movsd QWORD PTR [esp], xmm0
push OFFSET $SG2936
call _printf
add esp, 12 ; 0000000cH
Run Code Online (Sandbox Code Playgroud)
我想念的是movsd指导.根据这里:http://faydoc.tripod.com/cpu/movsb.htm它,Move doubleword at address DS:(E)SI to address ES:(E)DI但我没有看到任何设置esi,edi在这里和movsd生成的源文件有两个参数但在文档中的链接是不应该的.有人可以在这解释一下吗?
| 归档时间: |
|
| 查看次数: |
6101 次 |
| 最近记录: |