我有这个C代码翻译成汇编代码:将C代码翻译为汇编代码?
#include <stdio.h>
int main(){
int a, b,c;
scanf("%d",&a);
scanf("%d",&b);
if (a == b){
b++;
}
if (a > b){
c = a;
a = b;
b = c;
}
printf("%d\n",b-a);
return 0;
}
我的代码如下,和不完整的。
rdint %eax # reading a
rdint %ebx # reading b
irmovl $1, %edi
subl %eax,%ebx
addl %ebx, %edi
je Equal
irmov1 %eax, %efx #flagged as invalid line
irmov1 %ebx, %egx
irmov1 %ecx, %ehx
irmovl $0, %eax
irmovl $0, %ebx
irmovl $0, %ecx
addl %eax, %efx #flagged as invalid line
addl %ebx, %egx
addl %ecx, %ehx
halt
基本上我认为它主要是做了,但我有评论旁边两行标记为无效,当我尝试运行它,但我不知道他们为什么是无效的。我也不知道如何做一个> b的陈述。我可以使用任何了解y86汇编语言的人的建议。
大多数C编译器都有一个开关,可以为你生成程序集:gcc -S,cl/Fa等......至少是你的“x86”汇编程序) – paulsm4 2012-07-10 22:25:38
只是出于好奇,怎么编译这个? y86是作业问题的假设语言 – JoeCortopassi 2012-07-10 22:27:42
在我们使用yas progName.c编译的作业中,然后yis progName.yo – user1261445 2012-07-10 22:33:58