nota Intel 8086

Re: nota Intel 8086

de Gustavo Brown -
Número de respuestas: 0

Hola Javier,

  Lo que decís es correcto. Normalmente se compila el módulo 2^N haciendo el AND con (2^N-1). 

Ese código está mal por varias razones, entre ellas que chequea el bit 2 encendido para saber si es módulo 4 lo que está mal porque por ejemplo 0,8, 16, 24, y muchos otros números son 0 módulo 4 y no tiene el bit 2 encendido y además porque al ejecutar el AND pierde el valor de CX por lo que habría que utilizar un registro auxiliar.

Se podría compilar ese código de la siguiente manera:

   xor CX, CX
condWhile:
  cmp CX, 1000
  jnl finWhile  mov DX, CX and DX, 3 jnz finIf add AX, CX   finIf: inc CX finIf: inc CX jmp condWhile finWhile: add BX,AX


Saludos,
  Gustavo