Instruções no LEGv8 Flashcards
Para que serve a instrução ADD?
A instrução ADD realiza a soma de dois registradores (X2 + X3) e armazena o resultado em um terceiro registrador (X1). Exemplo: ADD X1, X2, X3.
Para que serve a instrução SUB?
A instrução SUB realiza a subtração de dois registradores (X2 - X3) e armazena o resultado em um terceiro registrador (X1). Exemplo: SUB X1, X2, X3.
Para que serve a instrução ADDI?
A instrução ADDI soma um valor imediato (constante) a um registrador (X2 + 20) e armazena o resultado em outro registrador (X1). Exemplo: ADDI X1, X2, 20.
Para que serve a instrução SUBI?
A instrução SUBI subtrai um valor imediato (constante) de um registrador (X2 - 20) e armazena o resultado em outro registrador (X1). Exemplo: SUBI X1, X2, 20.
Para que serve a instrução ADDS?
A instrução ADDS soma dois registradores (X2 + X3), armazena o resultado em um terceiro registrador (X1) e atualiza os flags de condição. Exemplo: ADDS X1, X2, X3.
Para que serve a instrução SUBS?
A instrução SUBS subtrai dois registradores (X2 - X3), armazena o resultado em um terceiro registrador (X1) e atualiza os flags de condição. Exemplo: SUBS X1, X2, X3.
Para que serve a instrução ADDIS?
A instrução ADDIS soma um valor imediato a um registrador (X2 + 20), armazena o resultado em outro registrador (X1) e atualiza os flags de condição. Exemplo: ADDIS X1, X2, 20.
Para que serve a instrução SUBIS?
A instrução SUBIS subtrai um valor imediato de um registrador (X2 - 20), armazena o resultado em outro registrador (X1) e atualiza os flags de condição. Exemplo: SUBIS X1, X2, 20.
Para que serve a instrução MUL?
A instrução MUL multiplica dois registradores (X2 × X3) e armazena os 64 bits inferiores do produto em outro registrador (X1). Exemplo: MUL X1, X2, X3.
Para que serve a instrução SMULH?
A instrução SMULH multiplica dois registradores (X2 × X3) e armazena os 64 bits superiores do produto assinado em outro registrador (X1). Exemplo: SMULH X1, X2, X3.
Para que serve a instrução UMULH?
A instrução UMULH multiplica dois registradores (X2 × X3) e armazena os 64 bits superiores do produto não assinado em outro registrador (X1). Exemplo: UMULH X1, X2, X3.
Para que serve a instrução SDIV?
A instrução SDIV divide dois registradores (X2 / X3), tratando os valores como assinados, e armazena o resultado em outro registrador (X1). Exemplo: SDIV X1, X2, X3.
Para que serve a instrução UDIV?
A instrução UDIV divide dois registradores (X2 / X3), tratando os valores como não assinados, e armazena o resultado em outro registrador (X1). Exemplo: UDIV X1, X2, X3.
Para que serve a instrução LDUR?
A instrução LDUR carrega um valor de 64 bits da memória (endereço X2 + 40) em um registrador (X1). Exemplo: LDUR X1, [X2, 40].
Para que serve a instrução STUR?
A instrução STUR armazena um valor de 64 bits de um registrador (X1) na memória (endereço X2 + 40). Exemplo: STUR X1, [X2, 40].
Para que serve a instrução LDURSM?
A instrução LDURSM carrega um valor de 32 bits assinado da memória (endereço X2 + 40) em um registrador (X1), com extensão de sinal. Exemplo: LDURSM X1, [X2, 40].
Para que serve a instrução STURM?
A instrução STURM armazena um valor de 32 bits de um registrador (X1) na memória (endereço X2 + 40). Exemplo: STURM X1, [X2, 40].
Para que serve a instrução LDURH?
A instrução LDURH carrega um valor de 16 bits da memória (endereço X2 + 40) em um registrador (X1). Exemplo: LDURH X1, [X2, 40].
Para que serve a instrução STURH?
A instrução STURH armazena um valor de 16 bits de um registrador (X1) na memória (endereço X2 + 40). Exemplo: STURH X1, [X2, 40].
Para que serve a instrução LDURB?
A instrução LDURB carrega um valor de 8 bits da memória (endereço X2 + 40) em um registrador (X1). Exemplo: LDURB X1, [X2, 40].
Para que serve a instrução STURB?
A instrução STURB armazena um valor de 8 bits de um registrador (X1) na memória (endereço X2 + 40). Exemplo: STURB X1, [X2, 40].
Para que serve a instrução LDXR?
A instrução LDXR carrega um valor da memória (endereço X2) de forma exclusiva (para operações atômicas) em um registrador (X1). Exemplo: LDXR X1, [X2, 0].
Para que serve a instrução STXR?
A instrução STXR armazena um valor de um registrador (X1) na memória (endereço X2) de forma exclusiva (para operações atômicas) e retorna sucesso/falha em X3. Exemplo: STXR X3, X1, [X2].
Para que serve a instrução MOVZ?
A instrução MOVZ carrega um valor imediato de 16 bits (20) em um registrador (X1), preenchendo o restante com zeros. Exemplo: MOVZ X1, 20.
Para que serve a instrução MOVK?
A instrução MOVK carrega um valor imediato de 16 bits (20) em um registrador (X1), preservando os outros bits. Exemplo: MOVK X1, 20.
Para que serve a instrução AND?
A instrução AND realiza uma operação lógica AND bit a bit entre dois registradores (X2 & X3) e armazena o resultado em outro registrador (X1). Exemplo: AND X1, X2, X3.
Para que serve a instrução ORR?
A instrução ORR realiza uma operação lógica OR bit a bit entre dois registradores (X2 | X3) e armazena o resultado em outro registrador (X1). Exemplo: ORR X1, X2, X3.
Para que serve a instrução EOR?
A instrução EOR realiza uma operação lógica XOR bit a bit entre dois registradores (X2 ^ X3) e armazena o resultado em outro registrador (X1). Exemplo: EOR X1, X2, X3.
Para que serve a instrução ANDI?
A instrução ANDI realiza uma operação lógica AND bit a bit entre um registrador (X2) e um valor imediato (20), armazenando o resultado em outro registrador (X1). Exemplo: ANDI X1, X2, 20.
Para que serve a instrução ORRI?
A instrução ORRI realiza uma operação lógica OR bit a bit entre um registrador (X2) e um valor imediato (20), armazenando o resultado em outro registrador (X1). Exemplo: ORRI X1, X2, 20.
Para que serve a instrução EORI?
A instrução EORI realiza uma operação lógica XOR bit a bit entre um registrador (X2) e um valor imediato (20), armazenando o resultado em outro registrador (X1). Exemplo: EORI X1, X2, 20.
Para que serve a instrução LSL?
A instrução LSL desloca os bits de um registrador (X2) para a esquerda por um valor imediato (10) e armazena o resultado em outro registrador (X1). Exemplo: LSL X1, X2, 10.
Para que serve a instrução LSR?
A instrução LSR desloca os bits de um registrador (X2) para a direita por um valor imediato (10) e armazena o resultado em outro registrador (X1). Exemplo: LSR X1, X2, 10.
Para que serve a instrução CBZ?
A instrução CBZ verifica se um registrador (X1) é igual a zero e, se for, desvia o fluxo do programa para um endereço relativo ao PC (PC + 4 + 100). Exemplo: CBZ X1, 25.
Para que serve a instrução CBNZ?
A instrução CBNZ verifica se um registrador (X1) é diferente de zero e, se for, desvia o fluxo do programa para um endereço relativo ao PC (PC + 4 + 100). Exemplo: CBNZ X1, 25.
Para que serve a instrução B.cond?
A instrução B.cond desvia o fluxo do programa para um endereço relativo ao PC (PC + 4 + 100) se uma condição específica for verdadeira. Exemplo: B.EQ 25 (salta se igual).
Para que serve a instrução B?
A instrução B realiza um salto incondicional para um endereço relativo ao PC (PC + 4 + 10000). Exemplo: B 2500.
Para que serve a instrução BR?
A instrução BR realiza um salto incondicional para o endereço armazenado em um registrador (X30). Exemplo: BR X30.
Para que serve a instrução BL?
A instrução BL salva o endereço de retorno (PC + 4) no registrador de link (X30) e salta para um endereço relativo ao PC (PC + 4 + 10000). Exemplo: BL 2500.
Para que serve a instrução FADDS?
A instrução FADDS soma dois valores de ponto flutuante de precisão simples (32 bits) e armazena o resultado em um registrador. Exemplo: FADDS S1, S2, S3.
Para que serve a instrução FSUBS?
A instrução FSUBS subtrai dois valores de ponto flutuante de precisão simples (32 bits) e armazena o resultado em um registrador. Exemplo: FSUBS S1, S2, S3.
Para que serve a instrução FMULS?
A instrução FMULS multiplica dois valores de ponto flutuante de precisão simples (32 bits) e armazena o resultado em um registrador. Exemplo: FMULS S1, S2, S3.
Para que serve a instrução FDIVS?
A instrução FDIVS divide dois valores de ponto flutuante de precisão simples (32 bits) e armazena o resultado em um registrador. Exemplo: FDIVS S1, S2, S3.
Para que serve a instrução FCMPS?
A instrução FCMPS compara dois valores de ponto flutuante de precisão simples (32 bits) e atualiza os flags de condição. Exemplo: FCMPS S1, S2.
Para que serve a instrução FADDD?
A instrução FADDD soma dois valores de ponto flutuante de precisão dupla (64 bits) e armazena o resultado em um registrador. Exemplo: FADDD D1, D2, D3.
Para que serve a instrução FSUBD?
A instrução FSUBD subtrai dois valores de ponto flutuante de precisão dupla (64 bits) e armazena o resultado em um registrador. Exemplo: FSUBD D1, D2, D3.
Para que serve a instrução FMULD?
A instrução FMULD multiplica dois valores de ponto flutuante de precisão dupla (64 bits) e armazena o resultado em um registrador. Exemplo: FMULD D1, D2, D3.
Para que serve a instrução FDIVD?
A instrução FDIVD divide dois valores de ponto flutuante de precisão dupla (64 bits) e armazena o resultado em um registrador. Exemplo: FDIVD D1, D2, D3.
Para que serve a instrução FCMPD?
A instrução FCMPD compara dois valores de ponto flutuante de precisão dupla (64 bits) e atualiza os flags de condição. Exemplo: FCMPD D1, D2.