An instruction is a statement that becomes executable when the program is assembled and compiled. The assembler translates instructions into machine language bytes and is loaded and executed by the CPU at runtime.
A directive has four components:
Label (optional)
Instruction mnemonic (required)
Operands (usually required)
Comments (optional)
Recently, I have encountered many problems in the process of learning assembly language. This will be updated gradually in the future. This time I will talk about the difference between mov and lea instructions.
1. Regarding whether there is any question about adding []
1. For the mov command:
Whether there is [] does not matter if the variable is, the result is all the value
For example: num dw 2
mov bx,num
mov cx,[num];bx=cx=2
For registers, [] means the address, but no [] means the value.
For example: num dw 2
mov ax,num
mov bx,ax;bx=2
mov bx,[ax];mov bx;DS:[ax], there may be an error here, in short, just understand the general meaning
2. For the lea instruction:
Is there any [] that doesn't matter if there is a variable, and the result is to take the address of the variable, which is equivalent to a pointer (opposite to mov)
For example: num dw 2
lea ebx,num;
lea eax,[num];ebx=eax
For registers, [] represents the value, but not [] represents the address.
For example: mov eax,2
mov ebx,[eax];ebx=2
mov ebx,eax;eax=address, different from program
Summarize
The above is a detailed explanation of the difference between mov and lea instructions in the assembly language introduced by the editor. I hope it will be helpful to everyone. If you have any questions, please leave me a message and the editor will reply to everyone in time. Thank you very much for your support for my website!
If you think this article is helpful to you, please reprint it. Please indicate the source, thank you!