Problema con apuntadores en Assembler

Publicado en 'Programación' por V_1ruS, 21 Jul 2013.





  1. V_1ruS

    V_1ruS Miembro nuevo

    Registro:
    6 Feb 2013
    Mensajes:
    6
    Likes:
    5




    Hola estoy haciendo una calculadora en assembler ya tengo la suma, resta y practicamente lo demas. El problema es q todo sale bien cuando se trata de operaciones con 4 digitos, por q la multiplicacion la debe hacer max con 2.

    Quisiera que me ayude en un prob q va mas alla de la calculadora. Como apuntar a una variable tipo word sin usar si ni di.?
    Dentro del codigo tengo
    .data
    nroa byte 4dup(" ")
    nrob byte 4dup(" ")
    nroaw word ?
    nrobw word ?
    resul byte ?

    y todas estas variables son usadas y modificadas dentro de diferentes procedimientos (proc) y en cada proc uso por ejemplo el mov di, offset nroa y mov si, offset nroaw
    y posteriormente mov (el registro),[si] (o el di) y asi entre cada variable y dentro de cada proc, pero ahora necesito usar banderas (flag) por que quiero consistenciar mejor el codigo para no volverlo mas enredado cuando haga la div, mul, y la potencia. Por eso he creado
    dig word 2dup(" ")
    esta variable me dara la cantidad de digitos de cada numero.
    pero yo no puedo hacer mov di, offset dig. Ni tampoco usar el "si" xq los estoy usando para otra cosa.
    Ya intente usar el bx como reemplazo del si y di pero tengo errores y aun asi la pregunta seria, ¿los unicos registros que puedo usar para para apuntar a la direcc de una variable son si, di y bx?. Que pasaria si quisiera apuntar a 5 direc de variables distintas al mismo tiempo...

    Espero que me ayuden porque se que si puedo obtener el valor de dig en su posicion 1 y en su posicion 2 podre terminar rapido con esto,lo demas creo que lo tengo resuelto.:hi: