Codifíca.me | Desarrollo web | Programación | SEOCodifíca.me | Desarrollo web | Programación | SEO
  • Monetizar
    • Adsense
    • SEO
  • Desarrollo web
    • Php
    • WordPress
    • Blogger
    • Facebook (API)
      • Aplicación Test
      • Conectar con Facebook
      • Facebook en Español
      • Publicar Facebook
    • Google Maps
    • JavaScript
    • Opencart
    • Prestashop
    • XML
    • Flash
  • Bases de datos
    • Oracle
    • MySql
    • Data Mining
    • Forms
    • SGBD
  • Código
    • Android
    • Ensamblador
    • Código ensamblador
    • Java
    • ms-dos
    • Pro*C
    • Vb.net
  • Crear Blog
  • Cajon desastre
    • Redes
    • Arquitectura
    • Ubuntu
    • Hardware
    • Software
    • Consolas
    • Iphone
  • Tools
    • Get Backlinks
    • SQL 2 XML
    • Footprints enlaces

Programación en Lenguaje ensamblador | Dividir dos números

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);                             
}

#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

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

Programación en Lenguaje ensamblador | Dividir dos números
Vota esta entrada. Danos tu like!

Miguel Ber
Miguel Ber Software Developer

Ingeniero informático y desarrollador de aplicaciones web. Experto en desarrollo web, Webmaster, e-commerce y SEO.

Code is {poetry}
¿Necesitas un desarrollador? Contáctame!
¿Tienes alguna pregunta? Te respondemos ya!!

1 comentarios. Comentar

Erin
3 noviembre, 2013 3:13

Hola, quiero generar un generador de funciones con un uC de la familia 8051 en lenguaje ENSAMBLADOR. Mi idea es guardar en una tabla los valores de la señal y recorrerla a ritmo del timer, en función de la freceucia.
no se si es la mejor forma de hacerlo o no, así que me gustaria que me aconsajaran.
Un saludo,gracias

Responder

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada.

Síguenos en las redes

Facebook
Twitter
Google+
Skype
GitHub
  • portatil ingeniero Mejores Laptops para Ingenieros y estudiantes de Ingeniería
  • sillas-gamming Las 20 mejores sillas gaming y de oficina
  • Los mejores ordenadores portátiles para estudiantes 2019
  • ideapad 310 Review Lenovo Portátil Ideapad 310
  • hp Opinión Portátil HP 250 G6 | Review
  • Ordenador Portátil Convertible – Acer SP513 – Intel Core i5 – 8 GB RAM – 256 GB SSD
codifica.me
Este sitio emplea cookies para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies..Aceptar Leer más
Privacidad y Política de Cookies