jmp is an unconditional jump
jz is 'jump if zero'
jle is 'jump if less than or eqaul to'
LOOP_BODY, LOOP_BEGIN and LOOP_END are labels, simply put they can be related to procedure calls, except these just jump straight to the next line of code, but unlike procedures these have no end point, unless the program is given another jump command it will just continue going sequencially through the rest of your code,
JMP and its cousins modify your program counter, line pointer or whatever you want to call it, to point to the next line of code it should execute. these jump points are given by the labels.
eg if you say
CODE
JMP 0h
, it will jump to the first line of your code
just like if your program looked like
CODE
0000 PROGRAM_START
0001 [some code]
.
.
.
0100 JMP PROGRAM_START
line 0100 will cause the program to jump back to line 0000
Dont take my word as gold, its been a year + since ive done this stuff, play with it, its the best way to learn.
have fun
hehe someone got there first...