Innymi słowy, czy jest jakaś sprawa, że potrzebuję tej instrukcji?Dlaczego istnieje instrukcja REP LODS AL?
Od Intel Instrukcji, to co instrukcja zrobić:
obciążenia (E) bajtów CX z DS: [(E) SI] do AL.
Weźmy następujący przykład w NASM:
section .data
src: db 0, 1, 2, 3
section .code
mov esi, src
mov ecx, 4
rep lodsb ; mov al, byte[esi + ecx -1]; ecx++
ile dyspozycja rep lodsb
realizuje, nie mam żadnej kontroli nad wartością załadowanego al
. Wszystko, co mogę zrobić, to czekać, aż instrukcja zakończy się, aby uzyskać ostatnią wartość al
, co oczywiście mogę uzyskać bezpośrednio, bez pętli.
To samo pytanie dotyczy całej rodziny: REP LODS AX
, REP LODS EAX
i REP LODS RAX
.
Moja starożytny Microsoft MASM „Programisty Guide” mówi, że 'LODS' jest jedynym w tej rodzinie z instrukcjami, które nie bierze powtarzania prefiks. –
Istnieje, ponieważ było zbyt drogie, aby go nie było. Nie można sobie pozwolić na nicetia, gdy trzeba zbudować 16-bitowy procesor z tylko 20000 tranzystorów. –
@WeatherVane, Myślę, że to nie MASM decyduje o nas, LOL –