Тёмный

Um Modo pouco usado em PROGRAMAÇÃO de MEGA DRIVE. 

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

Neste episódio vamos continuar com os modos de endereçamento e falar sobre o modo Absolute Short (Absoluto Curto) do Mega Drive. Esse modo é pouco usado em comparação com outros mas tem características bem legais.
O modo absolute short (absoluto curto) é igual ao modo absolute long*, porém utilizamos um endereço de *16 bits pra indicar o endereço onde a cpu vai realizar a operação ao invés de um endereço de 32 bits usado no absolute long*. Com isso a instrução fica apenas com uma *extension word*, e não duas como no modo *absolute long*, o que poupa espaço. O detalhe mais significativo é que a cpu faz *extensão de sinal para que o endereço fique com 32 bits no final.
#programação #megadrive #assembly

Наука

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

 

25 дек 2022

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 28   
Год назад
Página do episódio: www.manualdocodigo.com.br/curso-assembly-snes-mega-parte59/ Como montar o ambiente: www.manualdocodigo.com.br/curso-assembly-snes-mega-parte47/ Página do Fabien Sanglard (CPS-1): fabiensanglard.net/cpsb/index.html Código do episódio para rodar: github.com/Dgdiniz/retro-level-programming/tree/master/megadrive/tutorials/addressing-modes-absolute-short
@EuSouRCS
@EuSouRCS Год назад
Que universo interessante esse da programação,você é ótimo explicando,eu sou completamente novo no assunto e já consegui absorver o conceito! Muito obrigado por fazer o que Ama!
@alca-techsoftwarestudio9140
@alca-techsoftwarestudio9140 5 месяцев назад
Muito bom o video, é raro ver alguém trazendo esse tipo de conteúdo em português (apesar do Brasil ter uma comunidade bem ativa de desenvolvimento Retro)... Espero que você poste mais em breve, estou ansioso pelos próximos videos! Um complemento: Se não me engano os endereços na maioria dos modos de indexação de memoria são calculados via displacement do Program Counter, ou seja, o que o assembler coloca ali na verdade é um offset que somado ao valor atual do program counter resulta no endereço que você esta indexando, justamente por isso a extensão do endereço é "signed", se fosse Unsigned você até poderia pular 64Kib de memoria, mas só permitiria indexar endereços maiores do que o endereço atual do program counter, então só daria pra pular "pra frente", com a extensão do endereço sendo signed significa que você pode pular para endereços maiores e menores.... Algumas instruções permitem você usar até mesmo um Displacement de 8bits, isso permite indexar apenas 127 bytes pra frente ou para trás, mas a vantagem é que o offset pode ser encapsulado no próprio opcode da instrução o que reduz o numero de ciclos de acesso ao barramento, isso economiza um bom numero de ciclos de Clock, principalmente em loop's! Alguns assemblers fazem esse gerenciamento para você automaticamente, eles calculam o endereço que você esta indexando e ajustam automaticamente o data wide do displacement para ser o menor possível a comportar esse endereço.
@ronaldlima9231
@ronaldlima9231 Год назад
seria muito legal vc fazer uma playlist de estrutura de dados em c, lista estática, lista dinâmica, pilha, filas e etc.
Год назад
Tem coisas do tipo espalhada em vários vídeos meus. Quero explicar algumas estruturas de dados usando assembly tb.
@nelioalves4185
@nelioalves4185 Год назад
Fala Douglas, parabéns pelo seu canal e obrigado por compartilhar seu conhecimento. Sou fã de games retrô e estou acompanhando o seu curso de Assembly. Gostaria de pedir se poderia numerar os videos pra quando a gente parar com a numeração ajudaria voltar na aula pra rever. Obrigado meu amigo.
Год назад
Acessa o site do canal que lá tem tudo numerado e vários vídeos tem os tutoriais em texto.
@widneysilvarj
@widneysilvarj Год назад
Vim através do canal do Fábio Akita...parabens pelo conteudo
Год назад
Valeu Widney...
@wsricardo23
@wsricardo23 Год назад
Vim através do canal do Fábio Akita. Legal seu conteúdo.
Год назад
Valeu Wanderson, seja bem-vindo.
@MultiCuzido
@MultiCuzido Год назад
Quando o Akita menciona ele? Queria dar uma olhada.
@wsricardo23
@wsricardo23 Год назад
@@MultiCuzido Nesse vídeo ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-unpJgmjTLEg.html
@ryonagana
@ryonagana Год назад
Em C na teoria então o absolute long seria um ponteiro far e absolute short ponteiro near como era usado antigamente na era DOS ate meados dos anos 90?
Год назад
Acho que até poderia ser, mas acho que os ponteiros far/near tem mais a ver com o absolute e absolute long do Snes, onde o absolute normal seria um endereço de 16 bits dentro do banco (segmento) atual. Já o far seria um endereço de 32 bits que especifica a posição final.
@ryonagana
@ryonagana Год назад
@ entendi, parabens pelo seus video to sempre assistindo, adoro esse tipo de conteudo: programação e jogos hahaha
@diegocrusius
@diegocrusius 11 месяцев назад
me pergunto se é possivel fazer essa otimização usando o SGDK
@pablouesc
@pablouesc Год назад
Vim pelo Akita! Tenho certeza que vou curtir o canal
Год назад
Valeu Pablo, espero que goste...
@Giovani_Avelar_BR
@Giovani_Avelar_BR Год назад
Douglas, de forma resumida (se é que é possível rs..) você poderia me dizer porque os hardwares de forma geral precisam de milhares de portas lógicas ? seja em consoles, computadores e sistemas embarcados industriais, o motivo da pergunta é porque eu estou tentando entender como o processador funciona analisando do ponto de vista atomizado, do mais básico para o mais complexo, tipo, hoje eu estava pesando aqui, quantas portas lógicas seriam necessárias para eu projetar uma calculadora com as 4 operações básicas ? kkk entendeu o raciocínio ? Bom, é claro que uma calculadora nem se compara com o nível de complexidade de um computador, mas vou tentar baixar os requisitos, vamos para o mega drive por exemplo, o chip central do MD é um Motorola M68k isso ? Eu não encontrei exatamente quantas portas lógicas essa cpu tem, mas algumas informações dizem 68 mil portas kkk curioso, porque esse é o número da cpu, mas blz, vamos considerar esse número, porque eu preciso de 68 mil portas lógicas nesse console ?
@renatonascimento7885
@renatonascimento7885 Год назад
Não sou o Douglas, mas vou me atrever rs. Uma porta lógica é o circuito mais fundamental na eletrônica digital, como se fosse uma única peça de lego. não dá pra fazer muita coisa com uma peça de lego, assim como 1 porta lógica. agora se você for combinando diferentes portas lógicas fundamentais, vc cria outras portas mais complexas que conseguem realizar somas por exemplo, ou memorias. então um processador nada mais é do que um monte de portas lógicas fundamentais interligadas de forma a criar circuitos mais complexos. Mas porquê precisa de tantas em um processador? pq pra vc ter uma ideia, pra montar um circuito simples pra somar 1+1 precisaria quase umas 20 portas lógicas fundamentais entre AND, OR e NOT. As portas lógicas só foram possíveis pq inventaram o transistor, agora imagina a complexidade dos primeiros computadores, que as portas lógicas eram feitas com relês (chaves mecânicas magnéticas). Aliás, se vc quer ir no nível hard msm, tente criar sua calculadora com relês rsrsr. abs
@Giovani_Avelar_BR
@Giovani_Avelar_BR Год назад
@@renatonascimento7885 Valeu Renato, obrigado pela explicação, será que existe uma maneira de monitorar quantas portas lógicas estão sendo usadas num determinado tempo ? Imagino que sim, porque me parece que foi criado toda uma área de pesquisa em torno dos multicores, eu lembro quando essa parada começou, lá em 2006 com o Intel Core 2 Duo e Dual Core, núcleos físicos e núcleos virtuais (Hiper Threading), eu lembro de ler sobre isso, essa idéia surgiu com base na ociosidade da CPU, uma tentativa de maximizar as tarefas, tirando proveito máximo da CPU, eu disse "tentativa" porque até hoje eu percebo que o pessoal pena pra usar esses núcleos adicionais, por exemplo, nos jogos, repare que a maioria dos jogos não consegue usar muito bem as funções de múltiplos núcleos, especialmente quando passa de 6 cores, num exemplo de uma CPU com 12 núcleos e 12 threads às vezes o jogo fica "preso" a um ou dois núcleos, deixando o restante dos cores quase que 90% do tempo ociosos.
@renatonascimento7885
@renatonascimento7885 Год назад
@@Giovani_Avelar_BR kkkk aí vc ja chutou o balde, meu conhecimento é limitado. Imagino que sim, é possível monitorar essas "portas lógicas ociosas" , mas acredito que a "ineficiência" dos vários cores, está mais relacionado com a computação em si, que ainda funciona de forma sequencial, seguindo a arquitetura de John von Neumann. É surreal que depois de sei lá, quase 70 anos, a base continua a mesma. talvez os computadores quânticos e seus algoritmos, possam quebrar essa barreira, mas é um assunto totalmente obscuro pra mim.
@Giovani_Avelar_BR
@Giovani_Avelar_BR Год назад
@@renatonascimento7885 Pesquisei aqui agora sobre multicores e paralelismo, parece que a parada é mais complexa do que eu pensava, envolve limitações computacionais mesmo, como o professor do vídeo disse, nem tudo é paralelizável num programa, tem a ver com uma tal de Lei de Amdahl ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-2wC2dWs5ln8.html
@1975rcm
@1975rcm Год назад
Olá amigo. Deixe-me tirar uma dúvida com vc: O MD foi baseado no X68000, não foi? Agora, da mesma forma que existe emuladores para diversos sistemas, também existe para o sharp x68000. Não é possível pegar o melhor emulador para este computador e "ampliar" as especificações do sharp para bem acima da última versão de 93. Ou seja: performance da cpu, Vram, Rom, Ram, Sram, mais cores, mais sprites, etc.., e ao mesmo tempo compativel com o MD? Talvez duas ou três vezes a capacidade do último modelo lançado? Criar um excelente emulador de 16 bits, utilizando as caracteristicas dos processadores atuais? Assim , vc tem desde os jogos do MD até a possibilidade de criar jogos, ou reprogramar jogos do MD, para ter muito mais qualidade de imagem e som? Obrigado pela atenção.
Год назад
Olá, você poderia fazer isso que você falou. Você poderia pegar o melhor emulador de Mega por exemplo e colocar mais clock, melhorar o chip de vídeo e de som e turbinar da maneira que você imaginar. Porém isso seria outro console e os jogos provavelmente não seriam compatíveis. Os jogos originais de Mega por exemplo foram feitos para o console do Mega, então eles usam os endereços dos registradores dos chips dentro do console pra acessar as funcionalidades disponibilizadas. Se vc mudar algum desses endereços o jogo já não vai funcionar. Se adicionar mais efeitos de vídeos os jogos originais não vão usar pois não sabem da existência desse novo efeito. Se aumentar o clock pode causar problemas na lógica do jogo, pois vai conseguir fazer muito mais coisa por frame, o que pode quebrar alguma coisa dependendo de como o jogo foi implementado. Então vc poderia fazer o que vc disse e criar um videgame único seu com muitos efeitos novos, porém teria que criar os jogos do zero ou fazer uma boa adaptação em jogos já existentes. Abraço....
@1975rcm
@1975rcm Год назад
Obrigado irmão pela resposta. Agora, eu quero levantar a bola pelo lado não do leigo, com eu, ,mas sim do profissional da programação. Eu me lembro, acredito que foi na época do Saturn, uma das reclamações feitas para a SEGA, foi de não consultar, não procurar saber o que os desenvolvedores queriam. O que estes buscavam em termos de hardware, possibilidades de ferramentas novas, poder de processamento, facilidade de programação, mídia utilizada, (esta no caso do N64), que, por fim, não foram escutadas pelos criadores de hardware. É daí que nasce a minha pergunta: Se perguntassem a você o que deveria ter um equipamento ou emulador que pudessem elevar a geração dos 16 bits a ter jogos ao nível "state of art" ? Uma configuração que todo programador, design, pudessem criar o jogo do seus sonhos, (lembrando que falamos em termos de 4ª geração), sem limitações impostas pelo hardware. Mais uma vez, obrigado pela atenção.
@carloshenrique-ov5nk
@carloshenrique-ov5nk 11 месяцев назад
@@1975rcm a gente vivencia isso hj em dia. sem limitações impostas pelo hardware, ou quase isso .
Далее
Os segredos dos cartuchos do SNES: LoRom e HiRom
27:53
Просмотров 2,4 тыс.
Criando um projeto em RUST do Zero e explicando TUDO
30:56
CLANCY 🦞 Operation Squid Ink (New Animation)
00:58
Você é PROGRAMADOR? Então encontre esse QRCODE.
24:24
Modo Absoluto no ASSEMBLY de Snes.
14:01
Просмотров 1,2 тыс.
O que é um ENDEREÇO  de Memória no SNES?
14:50
Просмотров 1 тыс.
ENGENHARIA DE COMPUTAÇÃO NA UNICAMP. Valeu a pena?
13:48
Desvendando os segredos dos cartuchos HiROM de SNES
25:18
Como Configurar o PYTHON no VIM e NEOVIM do ZERO.
15:29
iPhone 15 Pro в реальной жизни
24:07
Просмотров 440 тыс.