Programar em RISC-V
Traduzir condições e ciclos, percorrer vetores e texto e operar sobre bits e várias palavras.
Condições e ciclos
- Escolhe comparação com ou sem sinal. Para
if (x<y):bgesalta ao else;jno fim do primeiro ramo evita cair no segundo. whiletesta antes (zero ou mais vezes);do...whiletesta 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
.ascizcomlbu, 1 byte por passo; terminador não conta. Dígitos'0'…'9', valor c−48. Letras emA…Zea…zseparados (A…zinclui pontuação). - Decimal para inteiro: . Rejeita antes de operar: v>429496729, ou v igual com d>5.
4294967295cabe;4294967296não.
Bits e palavras
| Bit k | Expressão |
|---|---|
| Testar | |
| Pôr 1 | |
| Limpar | |
| Trocar |
- Conta com
srliaté zero;sraipode nunca zerar negativos. Rotação combina deslocamentos por k e 32−k; trata k=0 à parte. - 64 bits: , estrito sem sinal, .
- Expoente
0xFFcom fração zero: infinito; com fração: NaN.bits & 0x7FFFFFFFigual a zero apanha ±0.