I assume that you are fimiler with registers and signed/ unsigned numbers
1-INC and DEC
INC mean increment by one and DEC mean decrement by one.
section .text
global _start
_start:
xor eax, eax
mov eax, 1
inc eax
ret
2-ADD and SUB
add and sub instructions simply add the source and destination operands and the result will store in destination. The destination could be a register or location in memory. add destination, source
section .text
global _start
_start:
xor eax, eax
mov eax, 5
mov ebx, -1
add eax, ebx
; eax = 4
mov ebx, -10
sub ebx, eax
;ebx = -14
ret
3- MUL and IMUL
mul it is for multiply unsigned numbers, imul used for signed numbers. There is one thing you should consider when you try to use them, mul/imul take is one operand, and assume that the other operand already store in first general purpose register AX.
section .text
global _start
_start:
xor eax, eax
mov eax, 5
mov ebx, 5
mul ebx
;eax = 25
mov ebx, -3
mul ebx
;eax = -75
ret
4-DIV and IDIV
As you guess, that div for division of unsigned numbers and idiv for signed numbers.
Note: rdx should be zero.
Note: the reminder of the divison will store in:
section .text
global _start
_start:
xor eax, eax
xor edx, edx
mov eax, 25
mov ebx, 5
div ebx
;eax = 5
mov ebx, -5
idiv ebx
;eax = -1
ret
The End