collapse

* Posts Recentes

Bibliotecas para arduino e drivers de stepper - o problema da 'distracção' por SerraCabo
[Ontem às 23:27]


Zener BZW04-105? por brunus
[Ontem às 17:34]


Artigo 11, 13 e os restantes por jm_araujo
[10 de Dezembro de 2018, 11:05]


Compra Colectiva Mouser N3-2018 (limite 25 Nov) por Hugu
[10 de Dezembro de 2018, 01:07]


Ajuda para reparar Luzes de LED de Natal por brunus
[09 de Dezembro de 2018, 00:59]


Como reproteger as pontas de cobre do ferros de soldar? por brunus
[09 de Dezembro de 2018, 00:12]


Usar steppers de 5 pontas como se fossem de 4 pontas por SerraCabo
[08 de Dezembro de 2018, 21:18]


LusoRobótica - Website - Estado actual por Tech_JA
[06 de Dezembro de 2018, 09:18]


Como transformar um mosquito killer de tomada em um portátil? por brunus
[05 de Dezembro de 2018, 23:28]


LR, passado, presente e futuro por iyahdub
[05 de Dezembro de 2018, 04:16]

Autor Tópico: 8051 - dividir por 2 bytes- assembly  (Lida 3934 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 163
8051 - dividir por 2 bytes- assembly
« em: 21 de Dezembro de 2012, 15:09 »
Boa tarde, estou a fazer um projecto onde tenho que fazer uma regra de 3 simples, uControlador equivalente ao 8051.

Ou seja vou ter de multiplicar um byte (8 bits)  por outro (no caso o valor fixo 10) o que me dá 16bits e agora quero-o o divir, e esses 16bits estão em A e B.

Como é consigo efectuar a operação sendo que só quero a parte inteira?


PS: algum moderador que me posso mover este tópico para »Sistemas específicos » 8051
é que só depois vi que havia sector só para o 8051

obrigado
« Última modificação: 21 de Dezembro de 2012, 15:13 por filipe89 »

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: 8051 - dividir por 2 bytes- assembly
« Responder #1 em: 21 de Dezembro de 2012, 17:55 »
Isso é em C ou assembly?

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 1.943
Re: 8051 - dividir por 2 bytes- assembly
« Responder #2 em: 21 de Dezembro de 2012, 23:34 »
Não foi preciso procurar muito, já programei em 8051 entretanto já devo ter esquecido muita coisa

-->> ADD :: http://www.8052.com/add16.phtml
-->> Subtract :: http://www.8052.com/subb16.phtml
-->> Multiply :: http://www.8052.com/mul16.phtml
-->> Division :: http://www.8052.com/div16.phtml

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 163
Re: 8051 - dividir por 2 bytes- assembly
« Responder #3 em: 22 de Dezembro de 2012, 05:00 »

Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: 8051 - dividir por 2 bytes- assembly
« Responder #4 em: 22 de Dezembro de 2012, 10:54 »
Terás de fazer shift de maneira a separar os dois bocados da variavel de 16bits e colocar os resultados do shift nessas Variavéis A e B.

http://www.edsim51.com/8051Notes/8051/rotateInstructions.html

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 163
Re: 8051 - dividir por 2 bytes- assembly
« Responder #5 em: 24 de Dezembro de 2012, 13:26 »
Terás de fazer shift de maneira a separar os dois bocados da variavel de 16bits e colocar os resultados do shift nessas Variavéis A e B.

http://www.edsim51.com/8051Notes/8051/rotateInstructions.html

A multiplicação é fácil e esse é que me dá 2 bit (A e B):
Exemplo=
100 - 10
250 - x

x = 250 * 10 => 2500 ou seja A=196 e B=9

agora como faço para o resultado de divisão por 100 me dê 25?