Programa 8086 para convertir un número decimal de 16 bits a binario

Problema: Nos dan un número decimal de 16 bits, tenemos que imprimir el número en formato binario

Ejemplos: 

Input: d1 = 16
Output: 10000

Input: d1 = 7
Output: 111 

Explicación:  

  1. Cargue el valor almacenado en el registro
  2. Divide el valor por 2 para convertirlo a binario
  3. Empuje el resto en la pila
  4. aumentar el conteo
  5. Repita los pasos hasta que el valor del registro sea mayor que 0
  6. Hasta que el conteo sea mayor que cero
  7. POP la pila
  8. Agregue 48 al elemento superior para convertirlo en ASCII
  9. Imprime el carácter usando la interrupción
  10. Disminuye el conteo

Programa: 

;8086 program to convert a 16 bit decimal number to binary
    .MODEL SMALL
    .STACK 100H
    .DATA
        d1 dw 16
    .CODE
        MAIN PROC FAR
            MOV AX,
    @DATA
        MOV DS,
    AX
  
;load the value stored;
in variable d1
    mov ax,
    d1
  
;convert the value to binary;
print the value
    CALL PRINT
  
;interrupt to exit
    MOV AH,
    4CH INT 21H
  
    MAIN ENDP
        PRINT PROC
  
;initialize count
    mov cx,
    0 mov dx, 0 label1:;
if
    ax is zero
        cmp ax,
        0 je print1
  
;initialize bx to 2 mov bx, 2
  
;divide it by 2
;to convert it to binary
    div bx
  
;push it in the stack
    push dx
  
;increment the count
    inc cx
  
;set dx to 0
    xor dx,
    dx
        jmp label1
            print1:
  
;check if count
;is greater than zero
    cmp cx,
    0 je exit
  
;pop the top of stack
    pop dx
  
;add 48 so that it
;represents the ASCII
;value of digits
    add dx,
    48
  
;interrupt to print a
;character
    mov ah,
    02h int 21h
  
;decrease the count
    dec cx
        jmp print1
            exit : ret
                       PRINT ENDP
                           END MAIN

Producción: 

10000

Nota: El programa no se puede ejecutar en un editor en línea, use MASM para ejecutar el programa y use dos box para ejecutar MASM, puede usar cualquier emulador 8086 para ejecutar el programa
 

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *