Programar em RISC-V

Traduzir condições e ciclos, percorrer vetores e texto e operar sobre bits e várias palavras.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Condições e ciclos

  • Escolhe comparação com ou sem sinal. Para if (x<y): bge salta ao else; j no fim do primeiro ramo evita cair no segundo.
  • while testa antes (zero ou mais vezes); do...while testa depois (pelo menos uma). Conta o teste final de saída.

Vetores e texto

  • Apontador de words avança 4 bytes. Mantém apontador, quantidade restante e acumulador; testa zero antes de ler. [7,-3,10,0] dá 14; vazio dá 0.
  • Máximo: começa no primeiro elemento; vazio precisa de contrato. Zero inicial falha em vetores só negativos.
  • Inversão: lê ambas antes de escrever; termina ao cruzar. 0 ou 1 elementos voltam antes de calcular a última posição.
  • Texto .asciz com lbu, 1 byte por passo; terminador não conta. Dígitos '0'…'9', valor c−48. Letras em A…Z e a…z separados (A…z inclui pontuação).
  • Decimal para inteiro: v+=10v+dv^+=10v+d. Rejeita antes de operar: v>429496729, ou v igual com d>5. 4294967295 cabe; 4294967296 não.

Bits e palavras

Bit kExpressão
Testarx&(1≪k)x\mathbin{\&}(1\ll k)
Pôr 1x∨(1≪k)x\mathbin{\lor}(1\ll k)
Limparx&∼(1≪k)x\mathbin{\&}\sim(1\ll k)
Trocarx⊕(1≪k)x\mathbin{\oplus}(1\ll k)
  • Conta com srli até zero; srai pode nunca zerar negativos. Rotação combina deslocamentos por k e 32−k; trata k=0 à parte.
  • 64 bits: L=(AL+BL) mod 232L=(A_L+B_L)\bmod2^{32}, c=[L<AL]c=[L<A_L] estrito sem sinal, H=(AH+BH+c) mod 232H=(A_H+B_H+c)\bmod2^{32}.
  • Expoente 0xFF com fração zero: infinito; com fração: NaN. bits & 0x7FFFFFFF igual a zero apanha ±0.

Traço do vetor.

À 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.