Domanda

Cosa x86 registrare denota posizione di origine nell'istruzione movsb?

È stato utile?

Soluzione

In modalità 32 bit, esi.

In particolare, copie movsb un byte da ds:esi a es:edi, le si regola sia esi e edi da 1, sia su o giù a seconda del flag di direzione.

Altri suggerimenti

Come estrarre queste informazioni dal manuale

Ora che avete effettuato l'accesso a osdev.org, è il momento di pagare il debito morale in realtà impararla. : -)

manuale Intel Volume 2 del set di istruzioni - 325383-056US settembre 2015 sezione " MOVS / movsb / MOVSW / movsd / MOVSQ-spostare i dati da corda a corda", dice:

  

sposta il byte, parola o doppia parola specificato con il secondo operando (operando sorgente) alla posizione specificata   con il primo operando (destinazione operando). Entrambi gli operandi sorgente e destinazione si trovano nella memoria. Il   indirizzo dell'operando sorgente viene letta dal DS: ESI o DS: SI registri

programma di test Minimal

Infine, è necessario fare un programma minimo che utilizza l'istruzione per vedere se hai capito correttamente:

section .data
    src db 0
    dest db 1
section .text
global _start
_start:
    mov esi, src
    mov edi, dest
    cld
    movsb
    /* dest == 0*/

Versione Runnable di questo con affermazioni su GitHub .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top