Search the Community
Showing results for tags 'assembly'.
-
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?
-
Boas... Estou a pensar em começar a programar em Assembly. Só mesmo fazer o mais básico para começar! Tenho algumas questões para arrancar. 1 - É mesmo necessário uma aplicação dedicada para compilar os programas em Assembly ou o gcc serve? 2 - Onde posso encontrar um tutorial muito resumido de como começar com Assembly em Linux? 3 - O Vim server como editor para escrever os programas ou será melhor outro? Obrigado!
-
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:
-
Boas... Estou a iniciar o estudo de programação de um micro-controlador compatível com o 8051. E estou com algumas dúvidas ainda em relação aos vários sistemas de numeração. Por exemplo quando escrevo: MOV 0,#00000001 é o mesmo que escrever: MOV 0,#1 Se é diferente, qual é a dierença?
-
Boas pessoal, estava aqui e tentar resolver uns exercícios de preparação para exame, e tenho umas dúvidas em algumas perguntas. Se me pudessem ajudar, ou apontar a documentação correcta para aprender isto, agradecia. http://abelhas.pt/angelicous/document,25327817.pdf Tenho este código em assembly retirado do gdb e tenho as seguintes perguntas(e duvidas). 1- Qual o endereço da função call que chama calcula? Sei que calcula tem 5bytes. Como é que eu sei este endereço sem saber o main? 2- Substituir os ?? no lado direito no endereço 0x804845f pelo valor correcto deste byte. A minha dúvida é.
-
Boas pessoas, sou novo por aqui, e espero que me consigam ajudar. Aqui vai a duvida: Preciso de efectuar um cmp que para so permitir que o utilizador introduza 0's e 1's, mas nao estou a conseguir devido ao cmp 0dh, que encontra-se a baixo do 0. CMP AL, "1" JG @INICIO_SUB_1 CMP AL, 0DH ; Compara AL com CR JNE @SALTA_SUB_1 ; Salta para a função SALTA_SUB_2 se AL!=0DH como é que posso fazer isto, para restringir o al a 0 e 1's? Obrigado!
-
Boa noite, estou a fazer um trabalho académico no qual me é solicitada a soma em hexadecimal de 2 numeros, os quais peço ao utilizador caracter a caracter, guardando num vetor de bytes e fazendo logo validações... este programa está com algum problema e não consigo saber qual é o mesmo... Agradecia ajuda Está feito para 8086! .8086 .model small .stack 2048 DATA SEGMENT HEXA_MSG_1 DB 0DH,0AH,'Introduza primeiro nr. hexadecimal a somar: ','$' HEXA_MSG_2 DB 0DH,0AH,'Introduza segundo nr. hexadecimal a somar: ','$' MESSAGE4 DB 0DH,0AH,'ERRO. Introduza carater 0..9 OR A..F: ','$' HEXA_BIGGE
-
#include <p16f887.inc> ; CONFIG1 __CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_OFF & _LVP_OFF ; CONFIG2 __CONFIG _CONFIG2, _BOR4V_BOR40V & _WRT_OFF org 0x0000 ; endereço de reset goto main configs: bsf STATUS, RP0; activa banco 3 bsf STATUS, RP1 clrf ANSEL clrf ANSELH bsf STATUS, RP0; activa banco 1 bcf STATUS, RP1 bsf TRISA, RA0 ; Definir entradas S1 bcf TRISD, RD0 ; Definir saidas LED bcf STATUS, RP0; activa banco 0 bcf STATUS, RP1 bcf PORTD, R
-
Boas, Tenho uma pequena duvida..... Gostava de saber como calcular o endereço físico e o endereço efectivo das seguintes instruções: MOV WORD PTR [sI+12],257 PUSH BX
-
Boas tardes, Tenho de fazer um trabalho em que consiste enviar dados através de uma porta serie, e outro para os receber. Tenho por exemplo uma função para enviar um bit: ENVIAR_BIT PROC FAR MOV AH, AL MOV DX, 3FDH LB1: IN AL,DX AND AL, 00100000B JZ LB1[/indent] MOV AL, AH MOV DX, 3F8H OUT DX, AL RET ENVIAR_BIT ENDP Como posso por exemplo por uma letra 'A' a enviar e outro a receber? Obrigado, Cumprimentos
-
Necessito de fazer um programa em assembly em que multiplique dois números positivos de 16bits contidos nas celulas NUM1 e NUM2 (não posso usar a instrução Mul) Alguem me pode ajudar?
-
MIPS - Pedir inteiro, guardar em array e testar se o caracter é válido
supermastereu posted a topic in Assembly
Ao correr o seguinte código obtenho duas mensagens de erro... Sugestões para resolver...? .data text: .asciiz "\nEnter a number : " text2: .asciiz "\nThe value entered was: " text3: .asciiz "\nEntered an invalid character" val: .space 160 .text .globl main main: li $v0, 4 la $a0, text syscall main2: li $v0, 12 syscall sw $v0, val if_1: lb $t2, val blt $t2, 48, if_2 if_2: bgt $t2, 57, imp2 b main2 if_3: lb $t2, val bge $t2, 4 -
Boas pessoal, Eu tenho o seguinte: int main(){ unsigned int tabint[4]; asm{ MOV BX,0 MOV word ptr tabint[bX],10 } return 0; } O objectivo é aceder ao elemento 0 do tabint e colocar-lhe o valor 10. No entanto o seguinte erro aparece:Invalid register combination (e.g [bP+BX]). Qual o problema?
-
Boas Pessoal, vejam bem tenho este trabalho feito que é o seguinte: Programa: O programa deverá pedir ao utilizador um número inteiro. Em vez de utilizar a chamada ao sistema de código 1 irá utilizar um ciclo e a chamada ao sistema de código 12 (leitura de um caracter1) e armazenar os caracteres digitados num array. Se o utilizador introduzir um caracter não-válido (por exemplo, uma letra) o programa mostra uma mensagem de erro e começa tudo de novo. O "Enter" (código ASCII 10) deve ser reconhecido como o sinal de que o utilizador acabou de digitar o número. Não esquecer de terminar a st
-
Olá galera boa tarde! Estou começando a estudar Assembly agora e gostaria de uma ajuda de quem já entende, para ficar um pouco mais fácil para estudar. Eu uso o Ollydbg para editar o jogo Priston Tale. Sou administrador de um servidor e gostaria de aprender a adicionar funções novas e novidades, porém não tenho muita noção da linguagem ainda. Caso alguém possa me ajudar agradeço. Obrigado. Vitor Brussi.
-
Boa noite a todos os membro deste forum! Preciso de ajuda urgente num trabalho que tenho que fazer.. o problema é que eu não emcontro nenhuma informação util e eu nao percebo nada disto. Gostave de arrumar ja com esta cadeira ate porque acho que não faz qualquer sentido abordar assembly no curso que estou a tirar, mas pronto.. Passando ao trabalho que tenho que fazer.. o objectivo é ler o valor da voltagem que esta no input e entre 1.35 e 1.50 deve acender todos os leds (que sao aqueles que estão por cima daqueles valores 76543210), entre 0.75 e 1.35 acender metade e finalmente entre 0 e 0.
-
Boas (: nos últimos dias dediquei-me a desenvolver o Jogo da Forca usando como base o MIPS. Motivação: Surgiu como um 'Projecto Pessoal' para não só me divertir mas também descobrir melhor como funciona o MIPs a nível de registos, memória e para descobrir as suas potencialidades. Concluí hoje uma versão quase final mas gostava de partilhar com vocês para receber opiniões sobre o que devo melhorar e se tenho algum erro que deva corrigir rapidamente ! Penso que para já tenho mais código do que seria objectivamente necessário mas ainda estou a trabalhar nisso! Cumprimentos e estejam à vontad
-
Boa Tarde Pessoal 😁 Hoje gostava de vos perguntar uma questão pois tenho uma dúvida num projeto que estou a fazer em Assembly Language. Preciso de escrever uma rotina que recebe nos registos B e C dois números de 8 bits para multiplicar. A rotina tem de fazer a multiplicação e deixar o resultado no registo A, mas se o produto dos dois números não puder ser guardado em 8 bits, a rotina deverá deixar ZERO no registo A. Eu já estive a ver online algumas soluções mas a maioria vai buscar endereços e eu fico um pouco confuso. Sou muito novo nesta linguagem mas toda a ajuda é preciosa 😁 Mais prec
-
Preciso gerar um numero aleatorio de 0 a 9, e que este apareça no display de 7segmentos. Alguem me pode ajudar?
-
Boa tarde programadores! Alguém me pode explicar mais ou menos o que é o "stack align"? Vejamos neste exemplo: (isto foi feito sobre linux com a versao gdb: "GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu" e o gcc:"gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1)" C: #include <stdio.h> main() { int a,b,c; a=0xbeef; b=0xdead; c=0xfaceb00c; a=a+b; printf("%d-%d",a,c); } Agora, vamos ver no debugger gdb: 0x0804841c <+0>: push %ebp 0x0804841d <+1>: mov %esp,%ebp 0x0804841f <+3>: and $0xfffffff0,%esp 0x08048422 <+6>: sub $0x20,%esp 0x08048425 <+9>: movl $0x
-
pessoal alguém me consegue explicar porque o código seguinte dá Divide overflow ??? Processador: 8086 mov ax, 10h mov cx, 2h div cx Obrigado!
-
Desde já uma boa tarde e um bom feriado a todos. A minha duvida é no seguinte código .data digito1 db 0 digito2 db 0 multi db 10h ;multi = 10 mov bx,dx mov ax,[bx+2] mov digito2,ah mov digito1,al mov bh,digito1 mov bl,digito2 sub bh,30h mul bh,multi ;ERRO quero multiplicar o bh por 10 sub bl,30h add bh,bl ao compilar este código está a dar-me erro na linha assinalada. O que estou a fazer mal? Obrigado
-
Boas, Alguem me sabe dizer se existe algum programa que eu corra, e que me diga a percentagem de igualdade entre dois codigos assembly? Se existe qual o nome do programa ? Cumps
-
mov eax,3 mov ebx,1 mov ecx,tmp mov edx,MAX_BUFFER int 0x80 dec eax mov [tam_tmp],eax O meu problema é o seguinte quero aceder há string mas não quero utilizar o lodss. Por outras palavras quero aceder há posição de memoria do valor do tmp.