Assembly RISC-V

RV32, endereços, formatos de instrução, saltos e chamadas com a pilha.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Registos RV32

RegistosConvenção
x0Sempre zero
x1/x2ra retorno; sp pilha, repor ao sair
t0–t6Temporários, o chamado não preserva
a0–a7Argumentos; a0/a1 trazem o retorno
s0–s11O chamado repõe os que alterar

Banco f separado para vírgula flutuante. Alinhamento de pilha de 16 bytes.

Memória e imediatos

  • Endereços em bytes: lw rd,12(rs1) lê em rs1+12. Palavra de 4 B; vetor[i] em base+4i.
  • lb/lh estendem sinal; lbu/lhu preenchem zeros. Little endian guarda o byte baixo primeiro.
  • addi usa imediato de 12 bits com sinal. Soma mantém 32 bits baixos, sem exceção.
  • slt/blt/bge com sinal; sltu/bltu/bgeu sem sinal. srai arredonda negativos para baixo, div para zero.

Vírgula flutuante

  • .s simples 32 bits, .d dupla 64 bits. flw copia, fcvt converte.
  • Precisão dupla sobre dados simples: flw, fcvt.d.s por elemento, fadd.d, avanço de 4 B. Contagem com fcvt.d.w, retorno com fcvt.s.d.
  • fmv copia bits; não converte.

Codificar e saltar

FormatoCampos
Rfunct7 rs2 rs1 funct3 rd opcode
Iimm12 rs1 funct3 rd opcode
Simm[11:5] rs2 rs1 funct3 imm[4:0]
B/JImediato reordenado, bit zero implícito
  • Deslocamento B/J em bytes, somado ao PC da própria instrução.
  • jal/jalr guardam PC+4; jalr salta para (base+imm)&~1. Conta pseudoinstruções depois de expandidas.
  • lui + addi baixo negativo exige compensar a parte alta.

Pilha e recursão

Pico soma os tamanhos dos frames ativos; com tamanhos iguais, ativos × tamanho. Inclui o caso base quando reserva antes do teste.

Explicação completa.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.