Programación en lenguaje ensamblador para encontrar el número máximo
La clave de esta pregunta es cómo determinar los números pares e impares. En el libro binario, el bit más bajo de los números impares es 1 y el bit más bajo de los números pares es 0. Podemos usar el código de prueba 0001H para realizar la prueba.
El programa principal es:
xor ax; borra el contador impar ax
xor bx; comprueba si num1 es un número impar, bit de bandera impar
p>test num1,0001H
jz OS1 ;Número par, saltar número impar, continuar ejecución
inc ax ;Aparece un número impar
inc bx ;num1 es un número impar, bx se establece en 1
OS1 test num2,0001H
jz OS2; mum2 es un número par, salta
inc ax; mum2 es un número impar
jump LOOP1
OS2 cmp ax,00H; si son dos números pares, cero números impares son dos números pares.
jne LOOP1 ;No, saltar
inc num1 ;Sí, agregar uno a los dos datos respectivamente
inc num2
saltar LOOP2
LOOP1 cmp ax,0010H ; Comprueba el número impar (0010H=2)
je LOOP2 ; Dos números impares, salta
cmp bx,1 ; es solo un número impar en este momento, luego juzgue si mum1 es un número impar y salte
je LOOP2 ;num1 es un número impar, salte
xchg num1,num2 ;No, swap
LOOP2 mov num1,da1; asignación
mov num2,da2
end
Si hay alguna inexactitud, critique y corregirlos! !