Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;8086 program to convert a 16 bit decimal number to Hexadecimal
- .MODEL SMALL
- .STACK 100H
- .DATA
- d1 dw 999
- var1 db 0
- var2 db 0
- .CODE
- MAIN PROC
- mov ah, 1
- int 21h
- cmp al,'-'
- jne pos;
- mov var1,1;
- mov ah, 1
- int 21h
- cmp al, 39h
- jg letter
- sub al, 30h
- jmp digit
- letter:
- sub al, 57h
- digit:
- mov bl,al
- jmp input2
- pos:
- cmp al, 39h
- jg letter5
- sub al, 30h
- jmp digit5
- letter5:
- sub al, 57h
- digit5:
- mov bl,al
- input2:
- mov ah, 1
- int 21h
- cmp al, 39h
- jg letter2
- sub al, 30h
- jmp digit2
- letter2:
- sub al, 57h
- digit2:
- shl bx, 4
- mov ch,al
- or bl, ch
- ;two digits cleared
- mov ah, 1
- int 21h
- cmp al, 39h
- jg letter3
- sub al, 30h
- jmp digit3
- letter3:
- sub al, 57h
- digit3:
- ;sub al, 30h
- shl bx, 4
- mov ch,al
- or bl, ch
- mov ah, 1
- int 21h
- cmp al, 39h
- jg letter4
- sub al, 30h
- jmp digit4
- letter4:
- sub al, 57h
- digit4:
- ;sub al, 30h
- shl bx, 4
- mov ch,al
- or bl, ch
- cmp var1, 1
- jne print
- mov dx,65535
- sub dx,bx
- add dx,1
- mov bx,dx
- print:
- mov cx,61440
- mov dx,bx
- and dx,cx
- shr dx,12
- cmp dx,9
- jg printL
- add dx,30h
- jmp go
- printL:
- add dx,57h
- go:
- mov ah,2
- int 21h
- mov cx,3840
- mov dx,bx
- and dx,cx
- shr dx,8
- cmp dx,9
- jg printL1
- add dx,30h
- jmp go1
- printL1:
- add dx,57h
- go1:
- mov ah,2
- int 21h
- mov cx,240
- mov dx,bx
- and dx,cx
- shr dx,4
- cmp dx,9
- jg printL2
- add dx,30h
- jmp go2
- printL2:
- add dx,57h
- go2:
- mov ah,2
- int 21h
- mov cx,15
- mov dx,bx
- and dx,cx
- cmp dx,9
- jg printL3
- add dx,30h
- jmp go3
- printL3:
- add dx,57h
- go3:
- mov ah,2
- int 21h
- mov ah,4ch
- int 21h
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement