Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Participe do fórum, é rápido e fácil

Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!
Vilarejo PK2P
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.

Últimos assuntos

» RPG de Mesa: A fronteira Volume 4: O Castelo Owlrick. (D&D5e)
por Ariano 10/12/2020, 23:18

» [tutorial] hash em C/C++ com openssl
por kodo no kami 21/9/2020, 13:37

» ping lista grafico
por kodo no kami 24/7/2020, 07:53

» [Discord] Campanha de RPG D-cyber
por Jonatan15 17/7/2020, 11:11

» [tradução] 1869 (msdos)
por kodo no kami 26/6/2020, 13:43

» [source] exemplo filtro mediano
por kodo no kami 1/6/2020, 00:24

» [tutorial] criar filtro nas imagens (python)
por kodo no kami 22/5/2020, 19:29

» Wireless IDS Sagemcom
por kodo no kami 22/4/2020, 23:50

» [source] detectar dispositivos no wifi (sagemcom)
por kodo no kami 9/3/2020, 20:25

» [tutorial] wla assemblador (65xx, 68xx, z80, 8008, 8080 e huc6280)
por kodo no kami 2/2/2020, 16:42


Você não está conectado. Conecte-se ou registre-se

[tutorial] um pouco sobre o antigo pc altair 8800

Ir para baixo  Mensagem [Página 1 de 1]

kodo no kami

kodo no kami

e ae galera blz? nesse tutorial vamos programar para um computador antigo da decada 70, sendo essa maquina um altair 8800 da mits. Nesse tutorial vamos esta usando um simulador ja que é uma maquina extramente antiga e rara entre colecionadores (nunca tive oportunidade de mexer com um de verdade, queria uma replica de natal para brincar kkk =/ ), no caso para esse tutorial vamos usar o "altair 8800 emulator" embora exista outros emuladores para ele inclusive alguns onlines

site oficial (altair32)

bom galera antes de começar a brincar com o emulador temos que entender algumas coisas, a primeira delas que programar esse tipo de maquina não é tão simples como as atuais onde a gente cria o codigo em C, Pascal ou qualquer outra linguagem usando uma IDE bonitinha e depois joga no disco para dar boot. As maquinas mais antigas as vezes nem tinha o teclado ou monitor, apenas leds para sinalizar o bit daquele barramento, chaves ou botões para mudar os estados deles (no caso do altair são aquelas chaves do tipo alavanca). Outra coisa que temos que citar que a arquitetura do altair 8800 é baseado nos processadores intel 8080 (talvez exista variantes em 8085 ou ate em z80 ja que o proprio simulador tem a opção z80, alem dessas arquiteturas tambem serem compativeis de certa forma, embora creio que precise mudar um pouco o circuito para que isso seja possivel ~ uma coisa interessante que os computadores imsai 8080 é um clone do altair, eles tambem usavam processadores 8080, ate que começaram a ser fabricados usando o 8085 como cpu). Como o computador é baseado em 8080 então a arquitetura e o assembly usado na arquietura atual x86 não é compativel com essa maquina, nem o set de instruções e nem o binario gerado (para isso, temos que programar exatamente para a arquitetura 8080 ou ate mesmo o 8085 e z80, excluindo algumas instruções não compativel com o 8080). bom galera agora que a gente ja falou um pouco sobre esse computador vamos da uma olhada em uma imagem que peguei wikipedia dessa maquina

[tutorial] um pouco sobre o antigo pc altair 8800 Altair_8800_Computer

o que precisamos entender que vamos programar ele manualmente bit a bit formando o codigo binario equivalente aquela instrução do 8080, depois podemos rodar o programa tanto passo a passo quanto de uma vez. primeiro de tudo vamos entender um pouco do painel desse trem.

[tutorial] um pouco sobre o antigo pc altair 8800 ZPL0COP

O primeiro botão que vamos ver é o que fica no lado esquerdo do canto inferior (escrito off e on ~ coloquei em vermelho), esse botão liga e desliga a maquina (quando empurramos a alavanca para on ele liga para off ele desliga),

[tutorial] um pouco sobre o antigo pc altair 8800 7xMWy9Z

o segundo botão que vamos analisar sera o botão para rodar o programa do computador, sendo esse botão o run (no meu exemplo ele é o verde), para a gente usar esse botão temos que coloca o programa antes ne (esse emulador ja tem um programa padrao nele entao podemos dar um run sem problema), outra coisa que podemos ver que os leds que estiver escrito A e os D vao mudar constantemente sendo os leds A representando os endereços de memorias (normalmente vai mudar sequencialmente menos quando acontecer um jmp) e o D representando a instrução ou os dados (lembrando que isso é binario ~ no exemplo abaixo seria o codigo hexadecimal 8 no barramento de dados e no barramento endereço de memoria o numero 4cff), podemos apertar em stop para parar o programa no trecho atual da memoria (tambem a cor verde porem para cima dessa vez), depois que o programa estiver parado podemos apertar em run novamente para rodar ele novamente

[tutorial] um pouco sobre o antigo pc altair 8800 GsO3ja7

podemos rodar o programa passo a passo depois de parado usando o botão single step (no meu exemplo ele é o verde claro), o single step tambem serve para passar para o proximo dado na memoria (executando ele é claro)

[tutorial] um pouco sobre o antigo pc altair 8800 EqipQ91

para a gente resetar os registradores tambem seria meio para reiniciar o computador sem cortar a sua energia, usamos o botão reset (no meu exemplo é o roxo)

[tutorial] um pouco sobre o antigo pc altair 8800 Gn3Iq6I

para a gente ir para um endereço de memoria especifico temos que setar os bits equivalente a ele no barramento de endereço, para isso usamos os botões do barramento de endereço/dados (no meu exemplo é a cor marrom), supondo que eu quero debugar o meu programa a partir da posição hexadecimal 25 (100101) de memoria, então basta setar o valor 100101 nos botões de barramento e depois usar o botão de leitura ou Examine para pular para aquele trecho (no meu caso é o azul claro o botão), o Examine Next é executado para ler o proximo byte porem não executar como codigo

[tutorial] um pouco sobre o antigo pc altair 8800 QwPb1SA

para a gente escrever na memoria primeiro vamos para a posição desejada como no exemplo anterior, depois escrevemos no barramento de dados usando os botões de barramento (esse botão serve tanto para memoria quanto para os dados a diferença que os dados sao apenas 8 bits ou seja os oitos primeiros botões ja que é um processador de 8 bits), por fim usamos o botão deposit (no meu exemplo era o azul escuro), o Deposit Next vai pular a instrução e escrever no proximo endereço depois dela, no exemplo abaixo eu escrevo o byte 05 na memoria

[tutorial] um pouco sobre o antigo pc altair 8800 FB2bQGi

um simples programa que atribui um valor a um registrador depois soma com um outro valor a esse registrador depois joga na memoria no endereço 0b, no caso a instrução hlt vai parar o programa (seria o mesmo que puxar o botão stop porem por software), depois basta a gente da um step para o proximo dado para ter o resultado

Código:
 mvi a,50h
 mvi b,10h
 add b
 mvi h,0
 mvi l,0bh
 mov m,a
 hlt
 

depois de compilado vai gerar o codigo binario abaixo (representei ele em hex), voce pode criar seus proprios programas e não se limitar ao meu, bastando usar um compilador para 8080,8085 ou z80 para descobrir os bytes equivalente (ou procurar em manuais dessa arquitetura pelo set de instruções tambem)

Código:
3e 50 06 10 80 26 00 2e 0b 77 76 00

depois disso basta voce escrever cada byte desse sequencialmente a partir do endereço de memoria 0 ( vai da um trabalho isso em u.u ), depois executar o programa ele ate ele para no hlt como previsto pelo codigo, para a gente exibir o resultado basta exibir o proximo dado apertando o Examine Next (ele ler o proximo endereço da memoria sem executar), no meu exemplo tem que da o valor 60 (1100000)

[tutorial] um pouco sobre o antigo pc altair 8800 UgC9JgU

bom galera sei que tem muita coisa para falar sobre esse computador principalmente voltado a parte de programação, porem, esse tutorial foi feito para mostrar o funcionamento basico dessa maquina sem nos aprofundar tanto, então quem sabe em algum futuro tutorial eu entro de cabeça para ensinar asm 8080/8085 ou ate mesmo z80 ^^

by kodo no kami

https://eofclub.in/forum

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos