Dividir dos número en Lenguaje Ensamblador
Este programa realizado en ensamblador hace una división de un número por otro, no obstante en vez de hacer una división normal hará un bucle con el que irá haciendo restas iterativas para conocer así el cociente y el resto de la división.
Este sería el código hecho en C que queremos realizar en lenguaje ensamblador.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #define constante 14 long dividendo = constante; long divisor = 4; long cociente = 0; long resto = 0; int main() { resto = dividendo; do { resto = resto - divisor; cociente++; } while (resto >= divisor); } |
Esta sería el subprograma para dividir dos números hecho en lenguaje ensamblador:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | constante equ 14 section .data dividendo dq constante divisor dq 4 cociente dq 0 resto dq 0 section .text global main main: mov rax, [dividendo] mov rcx, 0 bucle: sub rax, [divisor] inc rcx cmp rax, [divisor] jge bucle mov [resto], rax mov [cociente], rcx mov rax,1 mov rbx,0 int 80h |