assembly

In my assembly exercise, the code works on one device but on another device, I get an error at the line mov al, [operation]


section .data
    num1 db 10
    num2 db 5
    result db 0
    operation db '+'
    
section .text
    global _start
    
_start:
    mov al, [operation]
    cmp al, '+'
    je add_numbers
    cmp al, '-'
    je sub_numbers
    cmp al, '*'
    je mul_numbers
    cmp al, '/'
    je div_numbers
    
add_numbers:
    mov al, [num1]
    add al, [num2]
    mov [result], al
    jmp end

sub_numbers:
    mov al, [num1]
    sub al, [num2]
    mov [result], al
    jmp end
    
mul_numbers:
    mov al, [num1]
    mov bl, [num2]
    mul bl
    mov [result], al
    jmp end
    
div_numbers:
    xor ax, ax
    mov al, [num1]
    mov bl, [num2]
    div bl
    mov [result], al
    jmp end
    
end:
mov eax, 1
xor ebx, ebx
int0x80

The code does not work on my own computer, but it works on other computers. The errors I receive are listed below.

These are the errors I got:

Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 11 column 10:   mov al, [operation]
Invalid language element: [operation]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 22 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 23 column 10:   add al, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 24 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 28 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 29 column 10:   sub al, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 30 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 34 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 35 column 10:   mov bl, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 37 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 42 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 43 column 10:   mov bl, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 45 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 11 column 10:   mov al, [operation]
Invalid language element: [operation]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 22 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 23 column 10:   add al, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 24 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 28 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 29 column 10:   sub al, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 30 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 34 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 35 column 10:   mov bl, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 37 column 6:    mov [result], al
Invalid language element: [result]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 42 column 10:   mov al, [num1]
Invalid language element: [num1]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 43 column 10:   mov bl, [num2]
Invalid language element: [num2]
Error in C:\Users\alisa\Desktop\assembly\projeler asm format\mips1.asm line 45 column 6:    mov [result], al
Invalid language element: [result]
Assemble: operation completed with errors.

Solution

  • The error message "Invalid language element" means that the assembler does not recognize the syntax of the text you are trying to feed it.

    You have to use the exact same assembler on all computers, and note that this might even be impossible if the different computers are of different types, because different types of computers have fundamentally different assemblers.

    There is a chance that you may be able to find a "cross assembler" (Wikipedia) that will run on a certain type of computer and understand the assembly language of a different type of computer, but we cannot give any further advise on this subject since you have not told us anything about the types of computers involved in your particular case.