Я новичок в сборке, и я пытаюсь понять Linux 0.01 загрузчика код, но я застрял в этой части (в очень beggining :)):повторив инструкция мов x86
.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
Этот код (как описано в исходные комментарии копий) загрузчик в новое место и продолжает выполнение от go. rep, за которым следует movs должен сделать это (копировать часть), но вместо этого используется инструкция mov {w}.
rep
movw
В каждом справочнике для x86 я посмотрел респ используется с указанием строки.
Can rep можно использовать со всеми инструкциями по передаче данных или просто строчными, и если да, то почему это не упоминается в справочных руководствах?
Итак, во время сборки _rep movw_ будет переведен на _rep movws_ opcode? –
'rep movsw'. Хотя, опять же, это действительно причудливая нотация (та, что в вашем первоначальном вопросе). Вы знаете, на каком ассемблере написано? –