Assembly_duvida

friZster

Membro
Alguem me pode dar uma dica como criar uma função em Assembly que devolva o resto de uma divisao?!
penso k seja algo deste género , mas sei que algo a nível de lógica não está bem, mas não consigo ver como solucionar o problema. Para quem tá habituado ao VB e ao Java, Assembly é uma granda f*da... s puderes ajudem:

jump main
a:7
b:2
r:0
main: lodd a
push
lodd b
push
call resto
stod m
insp 2
halt
resto: loco 0
push
push
lodl 0
subl 4
jzer divfim
lodl 4
subl 3
stol 1
loco 1
addl 0
stol 0
jump resto
divfim: lodl 1
stod r
insp 2
retn

Thanks! :rolleyes:
 
Para que processador é esse código?

Por aquilo que consegui analisar acho que a rotina resto não tem um return correspondente. Ou a instrução retn (ultima linha) é que faz isso?

Não ajuda muito mas... :o
 
Bem... que confusao... que notaçao é essa? para que processador?

Em assembly para x86, o resto de uma divisão é guardado no registo %AH se for divisão de bytes ; %DX se for divisão de words ; %EDX se for divisão de longs.
Portanto nao faria qualquer sentido fazer uma função para isso... Mas se quiseres fazer na mesma é completamente trivial.
 
epah... ja consegui, isto que tava a pedir mas obrigado

era isto:
jump main
a:7
b:2
main: lodd a
push
lodd b
push
call resto
insp 2
stod 4094
halt
resto: lodl 2
subl 1
jneg fimneg
stol 2
jump resto
fimneg: lodl 2
retn

isto e para correr num programa que corre no DOS que o macx ou hexmac, não sei bem o nome dakilo
 
Back
Topo