Mr.*_*der 5 x86 assembly data-transfer
我是程序员的新手,我正在尝试了解Linux 0.01引导程序代码,但我被困在这部分(非常开始:)):
.globl begtext, begdata, begbss, endtext, enddata, endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text
BOOTSEG = 0x07c0
INITSEG = 0x9000
SYSSEG = 0x1000 | system loaded at 0x10000 (65536).
ENDSEG = SYSSEG + SYSSIZE
entry start
start:
mov ax,#BOOTSEG
mov ds,ax
mov ax,#INITSEG
mov es,ax
mov cx,#256
sub si,si
sub di,di
rep
movw
jmpi go,INITSEG
Run Code Online (Sandbox Code Playgroud)
此代码(如源解释评论份)的bootloader到新的位置,并从继续执行去.rep后跟mov应该这样做(复制部分),而是使用指令mov {w}.
rep
movw
Run Code Online (Sandbox Code Playgroud)
在每个x86的参考书中,我看起来rep与字符串指令一起使用.
可以代表与所有数据传输指令,或只是字符串的人使用,如果是这样,为什么不正是在参考手册中提到?