Untitled

 avatar
unknown
plain_text
a month ago
1.7 kB
1
Indexable
.data
input db 'Enter Binary Input: $' ;   Enter Binary Input: 1011
Output db 'Binary Output: $'     ;   Binary Output;0000000..1011 

.code
input1 proc          ;Procedure ->input1
    mov ax,@data
    mov ds,ax
    
    mov ah,9
    lea dx,input   
    int 21h
    ret
endp

main proc
    mov ax,@data
    mov ds,ax
    
    call Input1     ; display: Enter Binary Input
    
    xor bx,bx       ; clear the bx register
    mov cx,16       
    
    while_:
    mov ah,1        ; single input
    int 21h
    cmp al,0Dh      ;
    je Output_
    AND AL,0FH      
    shl bx,1
    or bl,al
    loop while_
    
    Output_:
    mov ah,9
    lea dx,Output
    int 21h
    
    mov cx,16
    
    IF:
    shl bx,1
    jnc then
    mov ah,2   ;print output
    mov dl,31h  ; '1'
    int 21h
    jmp display
    
    then:
    mov ah,2
    mov dl,30h
    int 21h
    jmp display
    
    display:
    loop IF
    
    End_while:
    mov ah,4ch
    int 21h
    main endp
end main


.data
input db 'Enter Hex Value: $'
output db 'Output Hex Value: $'

.code
MAIN PROC
    mov ax,@data
    mov ds,ax

    mov ah,9
    lea dx,input
    int 21h

    XOR BX,BX
    MOV CL,4
    MOV AH,1

FOR:
    INT 21H
    CMP AL,0DH
    JE OUTPUT_
    CMP AL,41H
    JGE LETTER
    AND AL,0FH
    JMP SHIFT
    
LETTER:
    SUB AL,37H
    
SHIFT:
    SHL BX,CL
    OR BL,AL
    JMP FOR 
    
OUTPUT_:
    MOV AH,9
    LEA DX,OUTPUT
    INT 21H
    
    MOV CX,4
    MOV AH,2 
    
AGAIN:
    MOV DL,BH
    SHR DL,4
    ROL BX,4
    CMP DL,10
    JGE LETTEROUT 
    ADD DL,48
    INT 21H
    JMP EXIT 
    
LETTEROUT:
    ADD DL,55  
    INT 21H
    
EXIT:
    LOOP AGAIN  
    
END_MAIN:
    MOV AH,4CH
    INT 21H
    END MAIN
MAIN END


Editor is loading...
Leave a Comment