I have to translate this C code to assembly code:

 #include &lt;stdio.h&gt;

 int main(){

 int a, b,c;
 scanf("%d",&amp;a);
 scanf("%d",&amp;b);
 if (a == b){
   b++;
 } 
 if (a &gt; b){
  c = a;
  a = b;
  b = c;    
 }
 printf("%d\n",b-a);
 return 0;
 }  


My code is below, and incomplete.

    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


Basically I think it is mostly done, but I have commented next to two lines flagged as invalid when I try to run it, but I'm not sure why they are invalid.  I'm also not sure how to do an if statment for  a > b.  I could use any suggestions from people who know about y86 assembly language.


Question: English equivalent for 'امریه'
Answer: That is not something that exists in every country/state in the world. It does not exist in England and the rest of the UK. There is an English word for mandatory military service, which is conscription. See the entry at CDO. The UK used to have conscription until the 1960s. While there is a word for mandatory military service, there is no particular way of referring to a civilian equivalent of it.

If you want to refer to it in English, it is probably best to use a description of it, like you have in your question.