Ich bin neu in der Montage und ich versuche, Linux 0,01 Urladercodes zu verstehen, aber ich habe an diesem Teil stecken (bei sehr beggining :)):Wiederholung mov Anweisung 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
Dieser Code (wie im Abschnitt Quelle Kommentare kopiert) Bootloader an neuen Speicherort und setzt die Ausführung von gehen. rep gefolgt von movs sollte dies tun (Kopieren Teil), sondern stattdessen Anweisung mov {w} wird verwendet.
rep
movw
In jedem Nachschlagewerk für x86 sah ich rep mit String-Anweisungen verwendet wird.
Kann rep mit allen Datenübertragungsanweisungen oder nur string verwendet werden, und wenn ja, warum wird es nicht in Referenzhandbüchern erwähnt?
Also, während der Montage wird _rep movw_ in _rep movws_ opcode übersetzt? –
'rep movsw'. Auch das ist eine wirklich skurrile Notation (die in Ihrer ursprünglichen Frage). Weißt du, für welchen Assembler? –