Ano bissexto em assembly
Publicado por Leonardo Weslei Diniz 11/12/2007
[ Hits: 20.444 ]
Homepage: http://www.agilesoft.com.br/
Ano bissexto em assembly.
Obs:programa fácil de entender, tem comentário em tudo.
.data str1: .asciiz "\n\tDigite o ano: " str2: .asciiz "\n\tAno BISSEXTO!!!" str3: .asciiz "\n\tAno COMUM!!!" str4: .asciiz "\n\tDigite:\n\t0(zero) para sair:\n\t1(um)para manual\n\t2(dois)para calcular ano bissexto\n\t" strman: .asciiz "\n\tAno bissexto o ano que possui um dia a mais do que os anos comuns (vulgares).\n\tO objetivo e manter o calendario utilizado em sincronia com os eventos sa_\n\tzonais relacionados as estacões do ano. No caso do calendario gregoriano, \n\tha a insercao de 1 dia extra a cada 4 anos no mes de fevereiro, que passa \n\ta ter 29 dias (ano com 366 dias) ao inves de 28 como nos anos comuns de 365\n\tdias. Diferentemente do que o senso comum nos leva a crer, o dia extra do a_\n\tno bissexto nao e o 29 e sim o 24 do mes de fevereiro. Para concluir se um\n\t ano e bissexto basta ser verificada a condicao do ano ser divisivel por 400\n\t(o resto da divisao do ano por 400 e zero), ou no caso de essa condicao ser\n\tfalsa, o ano ser divisivel por 4 mas nao por 100.\n\t\tfonte:\"http://pt.wikipedia.org/wiki/Ano_bissexto\"\n\tEste programinha foi desenvolvido para verificar se e ano bissexto a partir\n\tde um numero dado pelo usuario\n\n\t\tDivirta-se!!!\n\n\t\tCreditos:Leonardo Weslei Diniz\n\n\t\tEmail:exterminador3@gmail.com\n\n\t\tCurso:Ciencia da Computacao-Fic(Faculdades Integradas de Caratinga)-2 periodo\n\n\t\t" str5: .asciiz "\n\t+------------------------------------------------------------------------------------------+\n\t" .text .globl main. #main() main: #{ j menu #menu() comeca: #comeca: li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str1 #coloca a string str1 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) li $v0,5 #mostra qual operacao vai fazer syscall #chama o SO(sistema operacional) para fazer scanf("%d",$s1) addi $s1,$v0,0 #scanf("%d",&ano); addi $t1,$zero,4 #$t0=4; div $s1,$t1 #ano%4; mfhi $s1 #ano=ano%4; addi $t2,$zero,1 #$t2=1; beq $s1,$t2,else #if($s1 == $t1)goto else; addi $t2,$zero,2 #$t2=2; beq $s1,$t2,else #if($s1 == $t1)goto else; addi $t2,$zero,3 #$t2=3; beq $s1,$t2,else #if($s1 == $t1)goto else; li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str2 #coloca a string str2 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) j menu #menu(); else: #else: li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str3 #coloca a string str3 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) acabou: #acabou: jr $ra #} #--------------------------------------------------------------------------------- # funcaozinhas bobas #--------------------------------------------------------------------------------- menu: #menu(){ li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str4 #coloca a string str4 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) li $v0,5 #mostra qual operacao vai fazer no caso scanf syscall #chama o SO(sistema operacional) para fazer scanf("%d",$s1) addi $s1,$v0,0 #scanf("%d",&ano); addi $t1,$zero,2 #$t2=2 beq $s1,$t1,comeca #if($s1 == $t1)goto comeca; addi $t1,$zero,1 #$t2=1 beq $s1,$t1,manual #if($s1==$t1)manual(); bne $s1,$t1,acabou #if($s1 != $t1)goto acabou;} #---------------------------------------------------------------------------------- manual: #manual(){ li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str5 #coloca a string str5 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,strman #coloca a string strman em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) li $v0,4 #mostra qual operacao vai fazer no caso printf la $a0,str5 #coloca a string str5 em $a0 syscall #chama o SO(sistema operacional) para fazer printf("%s",$a0) j menu #menu();}
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (GNU Assembly)
Escrita de número em octal em Assembly puro para Linux 64 bits (NASM - Netwide Assembler)
Assembler 8086 - Simples código que mostra horas e minutos em pontos
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)