Тёмный

Como fazer um IF/ELSE em Assembly de Snes e Mega Drive. 

Manual do Código
Подписаться 19 тыс.
Просмотров 4,2 тыс.
50% 1

Neste episódio eu mostro como implementar um if/else em assembly. Para isso vamos aprender as instruções condicionais de branching. Vamos ver que em assembly temos que usar os bits da Status Register para decidir qual fluxo seguir no código.
Falo um pouco também sobre variáveis, onde em assembly as variáveis ficam na memória e temos que movê-las para os registradores quando formos usar essas variáveis.
No vídeo mostro como fazer um if, um if/else e mostro como fazer fluxos mais complexos, parecido com o que é possível fazer em C/C++ com o goto.
Eu criei códigos de exemplo pra Snes e Mega Drive, então acessem o Github do canal para terem acesso aos códigos.
#assembly #if #else

Наука

Опубликовано:

 

30 май 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 32   
2 года назад
Github da Série: github.com/Dgdiniz/retro-level-programming
@rodrigues3681
@rodrigues3681 2 года назад
Mestre ... Seu conteúdo é sem igual ! Parabéns !
2 года назад
Obrigado por assistir...
@thethiagosc
@thethiagosc 2 года назад
ficou bacana a aula hein.
2 года назад
Valeu Thiago.....
@buckyBitBoy
@buckyBitBoy 2 года назад
Essa série é excelente e sem dúvidas única aqui pelo RU-vid, não existe conteúdo assim tão minunciosamente explicado. Vou continuar acompanhando, abração
2 года назад
Valeu por acompanhar Bucky...
@LuizSilva-ev8cu
@LuizSilva-ev8cu 2 года назад
Esse conteúdo, bem explicado e em português, somente nesse canal mesmo.
@kissykriss
@kissykriss 2 года назад
Estou simplesmente adorando essa série, já é dificil achar conteúdo pratico em Assembly, ainda mais em Português
2 года назад
Valeu Driver.....
@LuizSilva-ev8cu
@LuizSilva-ev8cu 2 года назад
Massa demais essa série. Um dos melhores canais sobre o assunto.
2 года назад
Obrigado Luiz...
@marcosrogerio_oficial
@marcosrogerio_oficial 2 года назад
o Professor uns meses atrás eu começei a acompanhar a playlista la da engine do doom e falava sobre matrizes e tava muito complexo entender ai começei a estudar transformações do plano e os cálculos de matizes pra translação ampliação redução e rotação e agora ficou mais facil adaptar isso rm código. 😊😊😊
2 года назад
É isso aí Marcos, que bom que está avançando. Abraço.....
@victormatheus1283
@victormatheus1283 2 года назад
que playlist é essa? fiquei interessado! podia me mandar o link ou de que canal é
@marcosrogerio_oficial
@marcosrogerio_oficial 2 года назад
@@victormatheus1283 ru-vid.com/group/PLLFRf_pkM7b6rBRoTOW64NKdltCLQNpW5
@focuseletronica
@focuseletronica 2 года назад
Muito bom mesmo...muito obrigado por compartilhar conhecimento.
2 года назад
Obrigado por assistir :D
@joaovinicius8880
@joaovinicius8880 2 года назад
Oi Douglas, obrigado mais uma vez por seus ótimos vídeos que ensinam e motivam muita gente. Fiquei com uma dúvida, assim como você explicou também noto que os exemplos que nos exemplos que tenho de assembly o if é "inverso". Mas acredito que dê para fazer da forma mais comum utilizada em linguagens de alto nível. Exemplo: LDA #$100 CMP #$100 BEQ fazer_algo_se_for_cem ; intruções seguintes fazer_algo_se_for_cem: ; intruções RTS Abraços
2 года назад
Olá, desculpe a demora. Isso que vc colocou seria a parte de rotinas, que eu ainda não expliquei, mas do jeito que vc fez não vai funcionar, pois existem instruções especificas pra chamar uma rotina, pois o endereço de retorno tem que ser colocado na pilha para que essa instruções "rts" saiba pra onde voltar. O "beq" que você usou pra pular não salva o endereço na pilha. Tem que usar por exemplo o "bsr".
@joaovinicius8880
@joaovinicius8880 2 года назад
@ caramba, não sabia... Boa ! Obrigado pelos esclarecimentos, Douglas. Vou dar uma lida nessas funções de retorno, achei que eram mais simples
@TopMundoPerfeito
@TopMundoPerfeito Год назад
Olá Douglas, tem como criar conquistas nos jogos do snes, megadrive..etc Só um exemplo: se estou jogando Mario Word e se eu pegar 1000 moedas faz a conquistas de 1000 moedas capturadas e registra em um Banco de dados a conquista. Tem como fazer algo assim?
Год назад
Olá, daria pra colocar isso dentro do jogo, o que daria muito trabalho. Outra opção é ter um emulador que tenha uma forma de fazer conquistas. O emulador fica monitorando a memória do jogo e detectando aqui que precisa para contabilizar as conquistas. O emulador salva as informações em algum arquivo, porém cada jogo teria que ter toda essa parte de conquistas feita individualmente, pois cada jogo é diferente um do outro. Acho que já ouvi falar de um emulador que ter conquistas para alguns jogos, mas não lembros qual.
@TopMundoPerfeito
@TopMundoPerfeito Год назад
@ no caso esse emulador teria que ser programado do zero? ou daria para implementar utilizando um emulador existente?
Год назад
@@TopMundoPerfeito Daria pra usar qq emulador que tenha o código disponível. Porém tem emulador que tem suporte à scripts Lua, então acho que isso seria a forma mais fácil. Tipo vc criaria um script de conquistas pro Mario, que tem que rodar quando o jogo inicia. Aí nesse script vc pode ir checando várias coisas em cada frame pra ver se alcançou alguma conquista. Por exemplo, no Mario deve ter uma variável na Ram que guarda o número de moedas que o Mario tem. Então no script vc fica monitorando e sempre que as moedas forem incrementadas vc tb incrementa um arquivo com os dados das conquistas. Se por exemplo o total de moedas que o Mario já pegou durante o jogo chegar em 1000, vc ativa uma conquista. O desafio é mais então descobrir o que monitorar e como gerenciar tudo isso. Quando um novo jogo começar as conquistas tem que ser zeradas, esse tipo de coisa. Vc tb teria que adicionar algum elemento visual na tela quando uma conquista for alcançada, etc.
@DiogoalmeidaBR
@DiogoalmeidaBR Год назад
Olá! Estou usando o Bass na versão antiga, pois na nova eu não tenho configurar variáveis de ambiente devido privilégios administrativos que eu não tenho no meu usuário e na máquina que estou trabalhando. Testei o código e tive a falha: C:\...\SNES\projects\main>bass.exe -o main.sfc main.asm error: malformed expression: constant varEnergyPtr = $7f1000 main.asm:12:1: constant varEnergyPtr = $7f1000 bass: assembly failed Sabe se constant existe nas versões mais antigas? Estou usando como editor de código o próprio bloco de notas do Windows que é mais universal.
Год назад
Foi mal a demora. O que daria pra fazer é modar os scripts .bat pra não chamar o bass do sistema, mas sim de uma pasta específica. Vc pode colocar o Bass.exe novo na pasta do projeto e rodar dalí direto. Lembrando de copiar a pasta de arquitetura pra mesma pasta onde está o bass.exe.
@Capitao_Manero
@Capitao_Manero 2 года назад
Opa, eu to tentando jogar um game antigo faz tempo, arthur and The invisibles. Mas o jogo nao funciona bem nos computadores atuais. Teria alguma forma de fazelo pegar atravez do arquivo exe ou o sav??? É pq vi alguns fix na internet para mudar a resoluçao do programa por ai e fiquei curioso para saber como poderia fazelo manualmente tbm
2 года назад
Mas pra que sistema é esse jogo? É jogo de Pc antigo, tipo da época do DOS? Se for tentar usar o Dosbox, que é muito usado pra jogar jogos antigos e aumentar a compatibilidade.
@Capitao_Manero
@Capitao_Manero 2 года назад
@ obrigado eu acabei resolvendo o problema com um app chamado vjoy, n sei como ele me ajudou mas ajudou
@lucioemanuel5728
@lucioemanuel5728 2 года назад
Caraleou 40min pra fazer um if else kkkk assembly e complicado mesmo!
2 года назад
hehe É que misturo um monte de coisas junto. E gosto muito de misturar com as coisas dos consoles, então não consigo fazer vídeo curto. :D
Далее
Como fazer um WHILE em ASSEMBLY de Snes?
26:15
Um Modo pouco usado em PROGRAMAÇÃO de MEGA DRIVE.
12:56
This Stop Motion is Insane
00:39
Просмотров 7 млн
МЕГА ФОКУС С КАЛЬКУЛЯТОРОМ
00:33
O modo ABSOLUTO do MEGA DRIVE.
18:23
Просмотров 682
Você é PROGRAMADOR? Então encontre esse QRCODE.
24:24
Desvendando os segredos dos cartuchos HiROM de SNES
25:18
Can we dooby Tesco's GU10 bulbs?  - with schematic
10:41
Modo Absoluto no ASSEMBLY de Snes.
14:01
Просмотров 1,2 тыс.
APPLE дают это нам БЕСПЛАТНО!
1:01
Просмотров 750 тыс.
Копия iPhone с WildBerries
1:00
Просмотров 6 млн
Собираем комп за 500 000 рублей!
6:44:35