我有這個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