私は、bootsect.s が言及されているオペレーティング システムをオンラインで学習している初心者です 。 boot/bootsect.S しかし、このコードは私にとって非常に奇妙です:
mov ax,#BOOTSEG
mov ds,ax
mov ax,#INITSEG
mov es,ax
mov cx,#256
sub si,si
sub di,di
cld
rep
movsw
jmpi go,INITSEG
奇妙な部分は最後の3行です。私の理解によると、rep movsw
は既にコード自体を移動しているため、pc が指しているときに、pc が指すjumpi
コードをコンピューターが実行しようとすると、コードが移動されているためエラーが発生するはずjumpi go, INITSEG
です。では、なぜこのコードがまだ機能し、jumpi go, INITSEG
まだ見つけて実行できるのでしょうか?