Jump to content

Search the Community

Showing results for tags 'assembly'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Pascal
    • Python
    • Bases de Dados
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica e Automação Industrial
    • Matemática
    • Software de Contabilidade e Finanças
    • Dúvidas e Discussão de Programação
  • Outras Áreas
    • Notícias de Tecnologia
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


GitHub


LinkedIn


Twitter


Facebook

  1. estou usando um código para mostrar o resultado da tabuada de um numero inserido, porem na hora de me imprimir os números está me mostrando eles como código ascii ao invés do numero normal include 'emu8086.inc' org 100h mov bl, 0 ;contador=0 ;MOSTRAR STRING lea si, msg1 call print_string ; ler numero call scan_num mov al,cl k0: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k1: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k2: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k3: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k4: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k5: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k6: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k7: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl Gosto Copiar Denunciar k8: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl k9: add bl, 1 mov ah, 0Eh int 10h call pthis db 13,10, 'A multiplicacao dos valores e: ',0 mul bl endl proc mov ah, 02h mov dl, 13 int 21h mov dl, 10 int 21h endp ret msg1 db 'Introduza o valor: ', 0 DEFINE_PRINT_STRING DEFINE_SCAn_NUM DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS DEFINE_PTHIS esse é o código que estou usando se alguém puder me responder ficarei agradecido.
  2. #INCLUDE<P16F627.INC> __CONFIG _FOSC_INTOSCIO & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF ORG 0X40 COUNT EQU 0X20 NUM EQU 0X21 ORG 0X0 START ;DESABILITAR COMPARADORES MOVLW 0X07 MOVWF CMCON ;SELECIONAR BANCO 1 BSF STATUS,5 BCF STATUS,6 ;ENTRADA (BOTÃO DE SELEÇÃO DE MODOS) BSF TRISB,0 ;SAÍDAS (SEMÁFOROS) ;------------------------------- ;A1 BCF TRISA,0 ;VERDE 1 BCF TRISA,1 ;AMARELO 1 BCF TRISA,2 ;VERMELHO 1 ;A2 BCF TRISA,3 ;VERDE 2 BCF TRISA,4 ;AMARELO 2 BCF TRISA,5 ;VERMELHO 2 ;A3 BCF TRISB,1 ;VERDE 3 BCF TRISB,2 ;AMARELO 3 BCF TRISB,3 ;VERMELHO 3 😜 BCF TRISB,4 ;VERDE PEÃO BCF TRISB,5 ;VERMELHO PEÃO ;------------------------------- ;SELECIONAR BANCO 0 BCF STATUS,5 BCF STATUS,6 ;------------------------------- BTFSS PORTB,0 ;TESTA SE BOTÃO ESTÁ LIGADO GOTO INTERMITENTE ;SE BOTÃO ESTÁ DESLIGADO, EXECUTA ESTA INSTRUÇÃO GOTO SEQUENCIA ;SE BOTÃO ESTÁ LIGADO, EXECUTA ESTA INSTRUÇÃO INTERMITENTE ;A1 BCF PORTA,0 ;DESLIGA VERDE 1 BSF PORTA,1 ;LIGA AMARELO 1 BCF PORTA,2 ;DESLIGA VERMELHO 1 ;A2 BCF PORTA,3 ;DESLIGA VERDE 2 BSF PORTA,4 ;LIGA AMARELO 2 BCF PORTA,5 ;DESLIGA VERMELHO ;A3 BCF PORTB,1 ;DESLIGA VERDE 3 BSF PORTB,2 ;LIGA AMARELO 3 BCF PORTB,3 ;DESLIGA VERMELHO 3 ;DESLIGAR AMARELOS BCF PORTA,1 BCF PORTA,4 BCF PORTB,2 BTFSC PORTB,0 ;TESTA SE BOTÃO ESTÁ DESLIGADO GOTO SEQUENCIA GOTO INTERMITENTE SEQUENCIA BTFSS PORTB,0 ;TESTA SE BOTÃO ESTÁ LIGADO GOTO INTERMITENTE ;EXECUTA ESTA INSTRUÇÃO SE BOTÃO ESTIVER DESLIGADO ;VINTE_SEGUNDOS 😜 BCF PORTB,4 ;DESLIGA VERDE BSF PORTB,5 ;LIGA VERMELHO ;A1 BSF PORTA,0 ;LIGAR VERDE 1 BCF PORTA,1 ;DESLIGAR AMARELO 1 BCF PORTA,2 ;DESLIGAR VERMELHO 1 ;A2 BSF PORTA,3 ;LIGAR VERDE 2 BCF PORTA,4 ;DESLIGAR AMARELO 2 BCF PORTA,5 ;DESLIGAR VERMELHO 2 ;A3 BCF PORTB,1 ;DESLIGAR VERDE 3 BCF PORTB,2 ;DESLIGAR AMARELO 3 BSF PORTB,3 ;LIGAR VERMELHO 3 CALL DELAY20 BTFSS PORTB,0 GOTO INTERMITENTE ;TRES_SEGUNDOS ;A1 BCF PORTA,0 ;DESLIGAR VERDE 1 BSF PORTA,1 ;LIGAR AMARELO 1 BCF PORTA,2 ;DESLIGAR VERMELHO 1 ;A2 BCF PORTA,3 ;DESLIGAR VERDE 2 BSF PORTA,4 ;LIGAR AMARELO 2 BCF PORTA,5 ;DESLIGAR VERMELHO 2 ;A3 BCF PORTB,1 ;DESLIGAR VERDE 3 BCF PORTB,2 ;DESLIGAR AMARELO 3 BSF PORTB,3 ;LIGAR VERMELHO 3 CALL DELAY3 BTFSS PORTB,0 GOTO INTERMITENTE ;NOVE_SEGUNDOS 😜 BSF PORTB,4 ;LIGA VERDE BCF PORTB,5 ;DESLIGA VERMELHO ;A1 BCF PORTA,0 ;DESLIGAR VERDE 1 BCF PORTA,1 ;DESLIGAR AMARELO 1 BSF PORTA,2 ;LIGAR VERMELHO 1 ;A2 BCF PORTA,3 ;DESLIGAR VERDE 2 BCF PORTA,4 ;DESLIGAR AMARELO 2 BSF PORTA,5 ;LIGAR VERMELHO 2 ;A3 BSF PORTB,1 ;LIGAR VERDE 3 BCF PORTB,2 ;DESLIGAR AMARELO 3 BCF PORTB,3 ;DESLIGAR VERMELHO 3 CALL DELAY9 BTFSS PORTB,0 GOTO INTERMITENTE ;ÚLTIMO 😜 BCF PORTB,4 ;DESLIGA VERDE BSF PORTB,5 ;LIGA VERMELHO ;A1 BCF PORTA,0 ;DESLIGAR VERDE 1 BCF PORTA,1 ;DESLIGAR AMARELO 1 BSF PORTA,2 ;LIGAR VERMELHO 1 ;A2 BCF PORTA,3 ;DESLIGAR VERDE 2 BCF PORTA,4 ;DESLIGAR AMARELO 2 BSF PORTA,5 ;LIGAR VERMELHO 2 ;A3 BCF PORTB,1 ;DESLIGAR VERDE 3 BSF PORTB,2 ;LIGAR AMARELO 3 BCF PORTB,3 ;DESLIGAR VERMELHO 3 CALL DELAY3 GOTO SEQUENCIA DELAY20 MOVLW B'11011111' ;MOVE 223 PARA W MOVWF COUNT ;MOVE 223 PARA COUNT CICLO_DELAY20 INCFSZ COUNT,1 ;COUNT+ GOTO CICLO_DELAY20 CLRF COUNT ;PÕE COUNT A 0 RETURN DELAY3 MOVLW B'11111001' ;MOVE 249 PARA W MOVWF COUNT ;MOVE 249 PARA COUNT CICLO_DELAY3 INCFSZ COUNT,1 GOTO CICLO_DELAY3 CLRF COUNT RETURN DELAY9 MOVLW B'11110000' ;MOVE 240 PARA W MOVWF COUNT ;MOVE 240 PARA COUNT CICLO_DELAY9 INCFSZ COUNT,1 GOTO CICLO_DELAY9 CLRF COUNT RETURN END Precisava de ajuda em alterar o delay de 20 segundos para 15 segundos, o de 3 segundos para 2 segundos e o de 9 segundos para 8 segundos
  3. Tomasz Grysztar criou o FASM Assembly. Ainda existe demanda de Assembly? Se não, porque não existe demanda de Assembly?
  4. Bom dia, Tenho um fornecedor que passou de VB para .Net. Antes usava a importação do componente no IDE do Delphi (XE8) mas agora deixou de ser possível e tive de optar pelo instalação do DotNet Runtime Library for Delphi da CrystalNet. Faço a importação das Assemblies sem problemas mas quando executo alguns métodos existentes na assembly importada tenho a seguinte excepção "Não é possível localizar a assemblagem 'Nome da assembly, Version = x,x,x,x, Culture = Neutral, PublicKeyToken = xxxxxxxxxxxx". Alguém me pode ajudar?
  5. Eu estou a desenvolver um programa que verifica se o número introduzido pelo utilizador é igual ou diferente ao número guardado em memória. Independentemente do número introduzido pelo utilizador a solução é sempre a mesma, diz que está mal mesmo introduzindo o número correto. Programa: .data pergunta: .asciiz "Introduza um numero\n" n_utilizador: .space 5 numero_secreto: .asciiz "1234" falhou: .asciiz "Falhou, o numero era 1234" acertou: .ascii "\nAcertou em " tentativas: .asciiz "tentativas" .text main: #Faz o display da pergunta li $v0, 4 la $a0, pergunta syscall #Guarda o numero introduzido li $v0, 8 la $a0, n_utilizador addi $a1, $a1, 5 syscall la $a0, n_utilizador la $a1, numero_secreto jal Passagem_enderecos beqz $v0, Iguais bnez $v0, Falhanco Iguais: #Faz o display da mensaguem acertou li $v0, 4 la $a0, acertou syscall #Termina o programa li $v0, 10 syscall Falhanco: #Faz o display da mensagem falhou li $v0, 4 la $a0, falhou syscall #Termina o programa li $v0, 10 syscall Passagem_enderecos: move $t0, $a0 move $t1, $a1 Verifica_b_por_b: lb $t2($t0) lb $t3($t1) beqz $t2, Verifica_numero_secreto beqz $t3, Diferente slt $t4, $t2, $t3 bnez $t4, Diferente addi $t0, $t0, 1 addi $t1, $t1, 1 j Verifica_b_por_b Diferente: addi $v0, $zero, 1 j Fim_do_procedimento Verifica_numero_secreto: bnez $t4, Diferente addi $v0, $zero, 0 Fim_do_procedimento: jr $ra Podem-me dizer o que está errado?
  6. Boas a todos! Estou perante um exercicí, em que tenho de prucurar um numero, dentro de uma cadeira de dados em Assembly P3 (input/linha2/linha3). Existem algumas condicionantes. Nomeadamente retornar em R1 o endereço onde foi encontrado o numero em causa. Como estou a iniciar-me em Assembly e o material didático para esta linguagem é bastante, coloco-Vos este pedido de ajuda. Eis o que tenho feito, mas que por motivos que desconheço, o simulador não retorna qualquer dado... ; Conjunto de dados ORIG 8000h Input STR 60385, 8536, 7627, 24376, 49543, 13210, 9866, 53798 linha2 STR 60526, 42549, 27769, 25234, 60984, 49533, 45468, 26128 linha3 STR 56370, 34983, 13129, 62576, 62248, 63856, 57035, 20429 Tamanho EQU 24 ;Localizar Localizar WORD 62576 ;Código MOV R2, 1 MOV R4, 62576 Find: CMP R4, M[R2] BR.Z Step2 INC R2 MOV R3, 0 BR Find Step2: MOV R3, 1 MOV R1, M[R2] FIM: JMP FIM ; fim programa Abrigado pela ajuda que me puderem dar, a perceber porque não retorna quaisquer dados... NEm do R1, nem R2 e nem o R3 Obrigado!
  7. Caros programadores Recentemente recebi uma proposta de trabalho sobre uma matéria nunca dada na escola. O enunciado é o seguinte: "Pretende-se o desenvolvimento de um programa em assembly que implemente uma stack de números inteiros e suporte as operações de Push (inserir) e Pop (retirar) de números bem como da listagem dos números da pilha. A stack poderá acomodar, no máximo, 20 números. Um menu com as seguintes opções deve ser implementado para suportar a respetiva manipulação: 1- Push 2- Pop 3- Listar 4- Sair A opção de Push deve resultar na solicitação do número inteiro a inserir na stack bem como na respetiva inserção. Caso a stack esteja cheia deve ser impressa uma mensagem indicativa desta ocorrência. A opção de Pop deve resultar na retirada do elemento da stack e na respetiva impressão no ecrâ. Caso a stack esteja vazia deve ser impressa uma mensagem indicativa desta ocorrência. A opção de listar deve mostrar todos os números que estão na stack, um por linha, a começar no topo. A opção Sair, como o nome indica, deve resultar na conclusão do programa." Conseguem ajudar-me?
  8. Ando com um certo interesse no Z80 e queria saber se existe algum compilador de ASM de Z80 para uma linguagem de alto nível (C, BASIC; Pascal, qualquer coisa serve.). Encontrei apenas uma solução cujo preço nem sequer é divulgado (o que me leva logo a pensar que não tenho carteira para tal :D) e tendo em conta que tudo isto é por "carolice" minha, não queria fazer grande investimento financeiro na coisa.
  9. Qual é a quantidade provável de programadores que atualmente programam em linguagem de máquina? Qual é a provável porcentagem dos programadores que programam atualmente em linguagem de máquina? Qual é a quantidade provável de programadores que atualmente programam em linguagem de Assembly? Qual é a provável porcentagem dos programadores que programam atualmente em Assembly?
  10. gostaria se alguem pode me dar uma ajuda de como criar o jogo da velha em assembly no mips .data cabecalho: .asciiz "Jogo da Velha " espaco: .asciiz " " bl: .asciiz "n" um: .asciiz "1" dois: .asciiz "2" tres: .asciiz "3" barra: .asciiz "|" jog1: .asciiz "JOGADOR 1:n" jog2: .asciiz "JOGADOR 2:n" posicao: .asciiz "Digite linha e coluna (xy): " erro: .asciiz "Posicao Invalida.n" victory1: .asciiz "Parabens JOGADOR 1, voce ganhou." victory2: .asciiz "Parabens JOGADOR 2, voce ganhou." empat: .asciiz "Empatou, chora." .text .globl main main: addi $t0 $zero 45 #Inicializa os registradores em ‘-’ addi $t1 $zero 45 addi $t2 $zero 45 addi $t3 $zero 45 addi $t4 $zero 45 addi $t5 $zero 45 addi $t6 $zero 45 addi $t7 $zero 45 addi $t8 $zero 45 la $a0 cabecalho #Imprime o cabeçalho li $v0 4 syscall #comeca a diversao j print1 j fim print1: #Imprime a grade do jogo. la $a0 bl #linha branco li $v0 4 syscall la $a0 espaco syscall la $a0 espaco syscall la $a0 espaco syscall la $a0 um syscall la $a0 espaco syscall la $a0 dois syscall la $a0 espaco syscall la $a0 tres syscall la $a0 bl #linha branco syscall la $a0 espaco #comeco primeira linha syscall la $a0 um syscall la $a0 barra syscall move $a0 $t0 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t1 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t2 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim primeira linha li $v0 4 syscall la $a0 espaco #comeco segunda linha syscall la $a0 dois syscall la $a0 barra syscall move $a0 $t3 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t4 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t5 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim segunda linha li $v0 4 syscall la $a0 espaco #comeco terceira linha syscall la $a0 tres syscall la $a0 barra syscall move $a0 $t6 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t7 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t8 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim terceira linha li $v0 4 syscall j testejog2 #Chama teste para jogador 2 print2: la $a0 bl #linha branco li $v0 4 syscall la $a0 espaco syscall la $a0 espaco syscall la $a0 espaco syscall la $a0 um syscall la $a0 espaco syscall la $a0 dois syscall la $a0 espaco syscall la $a0 tres syscall la $a0 bl #linha branco syscall la $a0 espaco #comeco primeira linha syscall la $a0 um syscall la $a0 barra syscall move $a0 $t0 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t1 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t2 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim primeira linha li $v0 4 syscall la $a0 espaco #comeco segunda linha syscall la $a0 dois syscall la $a0 barra syscall move $a0 $t3 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t4 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t5 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim segunda linha li $v0 4 syscall la $a0 espaco #comeco terceira linha syscall la $a0 tres syscall la $a0 barra syscall move $a0 $t6 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t7 li $v0 11 syscall la $a0 barra li $v0 4 syscall move $a0 $t8 li $v0 11 syscall la $a0 barra li $v0 4 syscall la $a0 bl #fim terceira linha li $v0 4 syscall j testejog1 #Chama teste para jogador 1 jogador1: la $a0 jog1 #Imprime chamada para jogador 1 li $v0 4 syscall la $a0 posicao #Le a posição syscall li $v0 5 syscall move $16 $v0 beq $16 11 umum beq $16 12 umdois #switch para por X na posicao digitada beq $16 13 umtres beq $16 21 doisum beq $16 22 doisdois beq $16 23 doistres beq $16 31 tresum beq $16 32 tresdois beq $16 33 trestres la $a0 erro #Teste para posição invalida li $v0 4 syscall j jogador1 umum: bgt $t0 45 jogador1 #se ja estiver valor nesta posicao chama de novo addi $t0 $zero 88 #senao poe valor na posicao j print2 #…os demais casos são testados da mesma maneira… umdois: bgt $t1 45 jogador1 addi $t1 $zero 88 j print2 umtres: bgt $t2 45 jogador1 addi $t2 $zero 88 j print2 doisum: bgt $t3 45 jogador1 addi $t3 $zero 88 j print2 doisdois: bgt $t4 45 jogador1 addi $t4 $zero 88 j print2 doistres: bgt $t5 45 jogador1 addi $t5 $zero 88 j print2 tresum: bgt $t6 45 jogador1 addi $t6 $zero 88 j print2 tresdois: bgt $t7 45 jogador1 addi $t7 $zero 88 j print2 trestres: bgt $t8 45 jogador1 addi $t8 $zero 88 j print2 jogador2: la $a0 jog2 #Chamada para jogador 2 li $v0 4 syscall la $a0 posicao #Lê a posição syscall li $v0 5 syscall move $16 $v0 beq $16 11 umum2 beq $16 12 umdois2 beq $16 13 umtres2 beq $16 21 doisum2 #switch para por O na posicao digitada beq $16 22 doisdois2 beq $16 23 doistres2 beq $16 31 tresum2 beq $16 32 tresdois2 beq $16 33 trestres2 la $a0 erro #Teste de posição inválida li $v0 4 syscall j jogador2 umum2: bgt $t0 45 jogador2 #se ja estiver valor nesta posicao chama de novo addi $t0 $zero 79 #senao poe valor na posicao j print1 #…os demais casos de teste são iguais… umdois2: bgt $t1 45 jogador2 addi $t1 $zero 79 j print1 umtres2: bgt $t2 45 jogador2 addi $t2 $zero 79 j print1 doisum2: bgt $t3 45 jogador2 addi $t3 $zero 79 j print1 doisdois2: bgt $t4 45 jogador2 addi $t4 $zero 79 j print1 doistres2: bgt $t5 45 jogador2 addi $t5 $zero 79 j print1 tresum2: bgt $t6 45 jogador2 addi $t6 $zero 79 j print1 tresdois2: bgt $t7 45 jogador2 addi $t7 $zero 79 j print1 trestres2: bgt $t8 45 jogador2 addi $t8 $zero 79 j print1 fim: jr $ra testejog2: #Testa se jogador 2 ganhou add $a0 $t0 $t1 #Testa se o jogo termina empatado add $a0 $a0 $t2 add $a0 $a0 $t3 add $a0 $a0 $t4 add $a0 $a0 $t5 add $a0 $a0 $t6 add $a0 $a0 $t7 add $a0 $a0 $t8 beq $a0 756 empate add $a0 $t0 $t1 add $a0 $a0 $t2 #linha 1 beq $a0 237 jog2ganhou add $a0 $t3 $t4 add $a0 $a0 $t5 #linha 2 beq $a0 237 jog2ganhou add $a0 $t6 $t7 add $a0 $a0 $t8 #linha 3 beq $a0 237 jog2ganhou add $a0 $t0 $t3 add $a0 $a0 $t6 #coluna 1 beq $a0 237 jog2ganhou add $a0 $t1 $t4 add $a0 $a0 $t7 #coluna 2 beq $a0 237 jog2ganhou add $a0 $t2 $t5 add $a0 $a0 $t8 #coluna 3 beq $a0 237 jog2ganhou add $a0 $t0 $t4 add $a0 $a0 $t8 #diagonal 1 beq $a0 237 jog2ganhou add $a0 $t2 $t4 add $a0 $a0 $t6 #diagonal 2 beq $a0 237 jog2ganhou j jogador1 #Chama jogador 1 jog2ganhou: #Imprime que jogador dois ganhou e sai la $a0 victory2 li $v0 4 syscall j fim testejog1: #Testa se jogador 1 ganhou add $a0 $t0 $t1 #Testa se o jogo terminou empatado add $a0 $a0 $t2 add $a0 $a0 $t3 add $a0 $a0 $t4 add $a0 $a0 $t5 add $a0 $a0 $t6 add $a0 $a0 $t7 add $a0 $a0 $t8 beq $a0 756 empate add $a0 $t0 $t1 add $a0 $a0 $t2 #linha 1 beq $a0 264 jog1ganhou add $a0 $t3 $t4 add $a0 $a0 $t5 #linha 2 beq $a0 264 jog1ganhou add $a0 $t6 $t7 add $a0 $a0 $t8 #linha 3 beq $a0 264 jog1ganhou add $a0 $t0 $t3 add $a0 $a0 $t6 #coluna 1 beq $a0 264 jog1ganhou add $a0 $t1 $t4 add $a0 $a0 $t7 #coluna 2 beq $a0 264 jog1ganhou add $a0 $t2 $t5 add $a0 $a0 $t8 #coluna 3 beq $a0 264 jog1ganhou add $a0 $t0 $t4 add $a0 $a0 $t8 #diagonal 1 beq $a0 264 jog1ganhou add $a0 $t2 $t4 add $a0 $a0 $t6 #diagonal 2 beq $a0 264 jog1ganhou j jogador2 #Chama jogador 2 jog1ganhou: #Imprime que jogador 1 ganhou e sai la $a0 victory1 li $v0 4 syscall j fim empate: #Imprime EMPATE e sai la $a0 empat li $v0 4 syscall j fim
  11. Atualmente qual é o valor do maior salário de programador Assembly em Portugal e no mundo? Qual é o local que paga o valor do maior salário de programador Assembly em Portugal e no mundo? Qual é a porcentagem atual da demanda de Assembly no mundo?
  12. Olá, tenho de resolver dois exercícios de assembly, mas não percebo nada. Ainda só tive uma aula e foi teórica. Se alguém me pudesse ajudar: escreva um programa em ASM P3 (ou altere o programa anterior) que tenha numa variável em memória o lado de um quadrado e calcule o respetivo perímetro e área, colocando o resultado em R1 e R2, respetivamente. escreva um programa em ASM P3 que calcule: x = 20 – m + (n + 40). Onde x, m e n são registos do processador P3 (por exemplo, R1, R2, e R3).
  13. Boa tarde, quero guardar carateres do ecrã num ficheiro. O tamanho é 20 linhas e 40 colunas. Desenvolvi código, mas ele só está a guardar 14 linhas. Alguém me consegue ajudar? Mov bx,0 mov si,0 mov ax,0 mov di,si mov cx, 80 lab_ciclo: mov al, es:[bx] mov buffer[si], al inc si add bx,2 loop lab_ciclo add di,82 mov si,di mov cx,82 cmp si, 2050 jne lab_ciclo
  14. Boa tarde, Eu estou com dificuldades em criar um trabalho em assembly na arquitetura mips que codifique um texto. O programa tem de ''andar'' 5 vezes para a frente em cada letra do texto escrito. Exemplo: Ontem fui a Lisboa ter com a minha mae e aproveitei para comprar um gelado ->Tsyjr kzn f Qnxgtf yjw htr f rnsmf rfj j fuwtajnyjn ufwf htruwfw zr ljqfit Será que alguém consegue dar uma ajuda? Peço desculpa pelo incomodo e obrigado desde ja pela disponibilidade. Cumprimentos
  15. Bom dia, foi-me proposto um trabalho em assembly, o qual tem que percorrer um texto e no fim apresentar o número total de caracteres que compõem esse texto; número de letras minúsculas (sem acentos, ASCII puro); e por fim, número total de caracteres ASCII não representáveis. Agradeço desde já quem puder ajudar.
  16. batatoon13

    Delay

    Boas malta, Alguém me pode dizer como faço um delay em assembly no PIC16F627? A idea é no pressionar um botão executar o código, e ao fim de x segundos voltar tudo ao inicio thanks!! Cumpz! 👍
  17. Boas , estou a tentar fazer um programa em assembly onde é pedido para fazer uma rotina que tendo como parâmetro de entrada oendereço de uma stringC, devolva o somatório BCD (dois dígitos por byte) dos elementosque constituem a string, também assumidos como BCD. Comecei por fazer o seguinte: .data message1 : .asciiz "Introduza a string pretendida: \n" message2 : .asciiz "O somatorio da sua string é" userinput : .space 100 .text main: li $v0,4 la $a0, message1 syscall #Getting user's input as text li $v0,8 la $a0,userinput li $a1,100 syscall #Display string li $v0,4 la $a0,userinput syscall # jal somatorioelementos #Tell the system this is the end of main li $v0,10 syscall somatorioelementos: #Display somatorio li $v0,4 la $a0,message2 syscall #Tell the system this is the end of main li $v0,10 syscall Alguem me pode ajudar ? Estou no caminho certo ? Nao faço a minima como é que vou fazer a parte do somatorio .
  18. Viva, não percebo nada de assembly mas preciso de passar este codigo super simples para assembly. Alguém de ideias? (Sim, aprender asembly era o ideal, mas precisava disto para ontem) #include #include int main(void) { int soma=0; int resultado=0; int loopx=1; while(loopx==1) { printf("Insere um numero para somar\n"); scanf("%d",&soma); resultado = resultado + soma; printf("\nContinuar?\nSim-1\nNao-2\n"); scanf("%d",&loopx); } printf("\nO Resultado e: %d\n",resultado); system("pause"); return 0; }
  19. Boas malta, alguém me consegue explicar como resolver este exercício?
  20. Boas pessoal, Preciso de um snippet ou uma correcção ao meu código. Basicamente, o meu código tem uma variável global que tem como objectivo ser incrementada em 1 valor sempre que uma condição se comprovar. No final do código, quero imprimir essa variável mas dado que não se trata de uma string não a consigo imprimir. Aqui está o código: .data var_count db 0 .code ... mov ah,9 lea dx, var_count int 21h O que estou a fazer mal?
  21. Kerwac

    Assembly-mac

    Gostava de saber se é possível compilar assembly em mac? Vaso alguém já o tenha feito que me explicasse como o fez . Obrigado
  22. Alguém me consegue detalhar este programa ? Isto do assembly dá-me grande nó à cabeça. Como chego à conclusão que tem 32 instruções ? movl 10, %eax movl 0, %ecx ciclo: addl %eax, %ecx decl %eax jnz ciclo
  23. Boa tarde pessoal estou com dificuldades em implementar um programa em Assembly que gere um numero aleatorio entre 0 e 269 já pesquisei e pesquisei e a única coisa que tenho feita é ALEATORIO PROC NEAR MOV AH,2CH ;VAI BUSCAR A HORA DO SISTEMA INT 21H MOV AX,DX ;Guarda em AX os milisegundos(DL) RET ALEATORIO ENDP Como é que eu faço para com o resultado dos milisegundos gerar um numero entre 0 e 269?
  24. Foi me proposto fazer um programa que permita ao utilizador introduzir texto até introduzir o caractere #, devolvendo como output as seguintes estatísticas de texto: a) Número total de caracteres; b) Número total de palavras (Considerar como separador de palavras o caractere espaço, a tabulação ou mudança de linha) c) Número total de linhas; não é necessário entrar dados mas se desse seria melhor.. Eu tentei fazer, mas dá erro a compilar.. está aqui o que fiz .data frase: .string "Elementos de Arquitetura de Computadores#" palavras .byte 1 casas .byte 0 .globl main PALAVRAS: movb $1, %ax addb %ax, PALAVRAS CASAS: movb $1, %ax addb %ax, CASAS main: leal frase, %eax movb casas(%eax), %ax comp %ax, 0x00000020 je palavras comp %ax, 0x00000023 ja casas ret casas ret palavras Obrigado
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.