Divisão e comparação de números em Assembly - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Divisão e comparação de números em Assembly (/showthread.php?tid=11654) |
Divisão e comparação de números em Assembly - kochisurya - 19-05-2012 22:39 Estou a fazer uma calculadora de IMC (indice de massa corporal) em Assembly 8086 e tenho os seguintes problemas: Overflow na divisão; Problemas em comparação de valores; O calculo do IMC = peso / (altura*altura), em que eu estou a tratar o peso como num1 e altura como num2. em que depois de inserir os números tenho: ; para multiplicar a altura mov ax, num2 mul num2 ;para dividir o peso pela altura já multiplicada ;Aqui é que há o problema mov dx, 0 mov ax, num1 mov bx, num2 div bx Depois o problema é em comparar o valor obtido, não sei como fazer essa parte, será que usando JB, JA ou JMP resolvo o problema? Se sim, alguém me pode dar um breve exemplo? Obrigada RE: Divisão e comparação de números em Assembly - nioxys - 21-05-2012 14:42 Olá Experimenta fazer a divisão assim, MOV AX, num1 MOV CX, num2 DIV CX O resto da divisão fica guardado no registo DX. Quanto à comparação não tenho a certeza como se faz, mas deve ter haver com o bit mais significativo ou algo assim... RE: Divisão e comparação de números em Assembly - kochisurya - 21-05-2012 14:46 nioxys obrigada pela sua resposta, mas esse problema já está resolvido. Agora a minha dúvida prende-se na questão de ligar o resultado da divisão, à comparação. E isso sim não está a funcionar... RE: Divisão e comparação de números em Assembly - nioxys - 21-05-2012 15:28 Não tinha percebido isso. Como queres fazer a comparação? Queres comparar com o quê? RE: Divisão e comparação de números em Assembly - kochisurya - 21-05-2012 18:12 Entendeu bem, mas desde que postei já foi resolvido o problema da divisão. Eu tenho: cmp ax, 2500 jge acima cmp ax, 1900 jge ideal cmp ax, 1800 jle menos menos: mov dx, offset msg1 jmp print ideal: mov dx, offset msg2 jmp print print: putc 0Dh putc 0Ah mov ah, 9 int 21h E não corresponde ao valor que me dá na divisão. Mas se eu usar 'mov ax, <IMC>' e puser um valor de IMC para ele correr a mensagem, ele corre. |