This is the initialization part. After this part the survivor will jump to the main loop, which is pointed by sp.
The main loop contains of 2 bytes: F3 A5
which is:
rep
movsw
At the end of this code the values of the registers are:
sp – pointer to the loop
di – the destination of the "movsw", which is a bit more than (sp – 400h)
si – the source of the "movsw", which is in the beginning of the survivor's private memory
cx – the length of the loop: 1feh iterations
During the loop, the code from @loop…@end is copied upon the running code, and will run right when the loop ends.
In that code, the survivor changes location, and therefore changes the registers: sp, di, si, cx. The offsets of these registers are saved in dx, bx, bp respectively.
The last register is ax, which holds a clock. When the countdown gets to zero, the slaves are being slaughtered.
I hope it was helpfull.