C One
Do zero ao básico em sistemas embarcados e IoT
Assembly One
Do zero ao RISC-V
Assembly do zero num processador de verdade e de projeto aberto: o RISC-V, rodando Linux. Memória, registradores, desvio, laço, endereço, sub-rotina, pilha e o caminho de uma instrução por dentro do processador — construindo o painel de leitos de um pronto-socorro, com uma bancada inteira num contêiner Docker.
R$ 16,00
R$ 80,00
Promoção
Atenção: o idioma desta edição é português.
Edição Brasil
Menos teoria vazia.
Mais código que funciona.
Nada de exemplo solto com foo e bar.
Todo trecho pertence ao mesmo projeto, que cresce capítulo a capítulo —
e os erros aparecem como aparecem na sua tela, para serem lidos linha por linha.
lh t1, 0(t0) # 40lh t2, 2(t0)sub t1, t1, t2 # 40 - 31lh t2, 4(t0)sub t1, t1, t2 # - 3lh t2, 6(t0)sub t1, t1, t2 # - 2, t1 = 4
roda leitos.s | display00040roda livres.s | display00004
Um sistema só, do primeiro arquivo ao deploy
README.md
O Pronto-Socorro do Santa Byte tem um painel de duzentos e quarenta mil reais que não sabe responder se há leito livre. Ao longo do livro, esse painel vira um programa RISC-V: memória, registradores, laços, fila, triagem, sub-rotinas e o turno da noite.
Do zero ao RISC-V, no painel de leitos de um pronto-socorro.
- Um projeto só: o painel de leitos do Pronto-Socorro do Santa Byte
- RISC-V de verdade, em Linux, numa bancada Docker: nada para comprar
- O processador por dentro: pc, registradores, ULA e memória
- Bugs de verdade: o 65535 no painel e o contador que virou negativo
Leia uma prévia gratuita de Assembly One
Esta amostra contém os primeiros capítulos. O PDF completo continua protegido para compradores.
23 capítulos em 9 partes
Abra uma parte para ver os capítulos — e a frase que abre cada um.
parte 01 O projeto impossívelUm painel apagado na parede do pronto-socorro, uma placa que ninguém mais sabe programar, e a máquina que está dentro dela. 3 cap.
-
01
O hospital tem um problemaUma pergunta de uma linha — tem leito livre? — e uma placa de duzentos e quarenta mil reais que não sabe responder.
-
02
Junho de 1945Um relatório de cento e uma páginas, seis programadoras com cabos na mão, e um processador de 2010 que qualquer pessoa pode fabricar.
-
03
Conhecendo o RISC-VTrinta e dois registradores, uma memória de bytes, e um display que não conhece número negativo.
parte 02 As primeiras linhasMostrar um número, guardar um número, fazer uma conta. A conta acontece nos registradores, e a memória não tem nome de coluna. 3 cap.
-
04
Hello, HospitalPara o terminal, OI. Para o display da parede, dezoito mil setecentos e sessenta e sete.
-
05
Memória não é banco de dadosUma tabela com três colunas no quadro do Bruno. Na memória da placa, seis bytes sem nome nenhum.
-
06
Trinta e dois registradoresLivre é o que não está ocupado, nem bloqueado, nem reservado. E há trinta e dois lugares para fazer essa conta — alguns já com dono.
parte 03 Decidir e repetirNão existe if. Não existe for. Existe pular uma instrução, e pular para outro endereço. 3 cap.
-
07
Se houver leito, interneNão existe if. Existe uma instrução que compara dois registradores e, se der certo, manda a execução para outro lugar.
-
08
O computador não sabe o que você quis dizerSetenta e um leitos livres num pronto-socorro de quarenta. O programa rodou sem nenhum erro.
-
09
O dia em que o hospital descobriu o loopSete blocos copiados viraram dez linhas. O display da bancada passou a tarde mostrando números sem parar.
parte 04 Dados que andam pela memóriaA fila de pacientes vira uma sequência de endereços, e a prioridade vira uma subtração. 2 cap.
-
10
Fila de pacientesQuatro fichas em oito bytes seguidos, e uma quinta que foi parar em cima do ponteiro.
-
11
Prioridade"A regra é simples", disse a Dra. Marta, e explicou durante seis minutos.
parte 05 O painel quebraSessenta e cinco mil leitos disponíveis num pronto-socorro de quarenta, e o que os dezesseis bits estavam tentando dizer. 2 cap.
-
12
Três da manhãSessenta e cinco mil quinhentos e trinta e cinco leitos disponíveis, cinco horas antes da demonstração para a comissão.
-
13
Dezesseis bitsTrezentos e um mil atendimentos desde 2019. O registrador aguenta trilhões; a meia-palavra, sessenta e cinco mil — e às vezes nem isso.
parte 06 Gente do lado de foraO teclado da parede, o número que a enfermeira digita, e a triagem que junta tudo. 2 cap.
-
14
O paciente chegouOito semanas de projeto, e só na nona alguém perguntou quem ia mudar o número de ocupados.
-
15
TriagemTrês números por paciente, uma regra para quem tem mais de oitenta anos, e um ponteiro que ninguém mandou voltar.
parte 07 O sistema inteiroMenu, sub-rotinas e o programa que roda o turno da noite. 3 cap.
-
16
Vamos fazer o sistemaDoze teclas, cinco comandos, e uma tabela de saltos que cabe em quarenta bytes.
-
17
Dividindo o problemaTrês cópias do mesmo trecho, ou uma cópia que sabe voltar. David Wheeler resolveu isso em 1949.
-
18
O turno da noiteNovecentos e setenta e cinco bytes de programa, uma fila fora do arquivo, e o gerador do hospital testado às duas da manhã de domingo.
parte 08 A máquina por dentroO que acontece entre apertar o botão e o número aparecer: o caminho de uma instrução, registrador por registrador. 2 cap.
-
19
O que acontece num loadUma linha de Assembly, cinco caixas atravessadas, e um engenheiro clínico que quer ver as cinco.
-
20
Uma instrução, uma viagemA tecla 4 sai do teclado da parede, passa pelo Linux, e chega à triagem por um endereço que estava guardado na memória.
parte 09 ProduçãoTestar o que ninguém combinou, e deixar o código legível para quem chegar depois. 3 cap.
-
21
Só falta testarNa véspera da visita, a Cida testou o painel do jeito que ela trabalha. Achou cinco defeitos em vinte minutos.
-
22
O código que ninguém quer mexerDezesseis linhas de 2024, sem um único nome. E duzentas e oitenta e cinco linhas de 2026 que uma pessoa nova mudou em uma tarde.
-
23
Assembly não era sobre AssemblyUm for em Python, num projeto novo, e o Bruno enxergando os desvios.
Outros livros da série
C One
Do zero ao básico em sistemas embarcados e IoT
C# One — Volume 1
Fundamentos de C#
C# One — Volume 2
.NET de verdade
COBOL One
Mainframe para o Século XXI
Java One
Aprenda, evolua, sobreviva e se divirta
JavaScript One
Do primeiro console.log ao painel em produção
Mensageria One
Mensagens, eventos e processamento assíncrono
Receber a prévia
PHP One — Volume 1
Fundamentos do PHP
PHP One — Volume 2
Acelerando com Laravel
Python One
Do primeiro print à API REST em produção
Ruby One
Do primeiro puts ao contrato em produção
O que leitores dizem sobre Assembly One
Carregando avaliações deste livro…
Ver todas as avaliações deste livro →Assembly One
Do zero ao RISC-V, no painel de leitos de um pronto-socorro. O projeto começa a rodar no primeiro capítulo — e não para mais.
Atenção: o idioma desta edição é português.