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
cmp resultado da divisao, numero que queres comparar - definir b,w ou l -byte, word ou long -dependendo do tamanho que estas a usar jg maior jl menor je igual maior: codigo jmp fim menor: codigo jmp fim igual: codigo jmp fim fim: pop de registos ret
Vermillion, eu estou a fazer assim: ;para o caso do valor ser igual ao menor cmp cx, '18' jle menos ;para o caso do valor ser igual ao maior cmp cx, '19' jge ideal ;para o caso do valor ser igual ao menor cmp cx, '24' jle ideal ;etc... 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 dá certo =S