Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PUBLIC read_sd
- EXTRN read_str: near
- EXTRN print_newline: near
- EXTRN number: byte
- EXTRN bin_num: byte
- DataSeg SEGMENT PARA PUBLIC 'DATA'
- inputStr db 'abcdfkjdslkfd'
- DataSeg ENDS
- CodeSeg SEGMENT PARA PUBLIC 'CODE'
- assume CS:CodeSeg, DS:DataSeg
- read_sd proc near
- call print_newline
- mov dx, offset inputStr
- call read_str
- call clear_number
- call save_dec
- call to_bin
- ret
- read_sd endp
- clear_number proc near
- mov si, 0
- mov cx, 7
- clear_loop:
- mov number[si], 'a'
- inc si
- loop clear_loop
- ret
- clear_number endp
- save_dec proc near
- mov si, 0
- safe_loop:
- cmp inputStr[si + 2], 13
- je exit
- mov al, inputStr[si + 2]
- mov number[si], al
- inc si
- jne safe_loop
- exit:
- mov number[si], '$'
- ret
- save_dec endp
- to_bin proc near
- mov si, 0
- mov ax, 0
- cmp number[0], '-'
- jne num_loop
- inc si
- cmp number[0], '-'
- je num_loop
- loop_end:
- cmp number[0], '-'
- je make_neg
- exit:
- mov word ptr bin_num, ax
- ret
- make_neg:
- neg ax
- jmp exit
- num_loop:
- cmp number[si], '$'
- je loop_end
- mov dx, 10
- mul dx
- mov dx, 0
- mov dl, number[si]
- sub dl, '0'
- add ax, dx
- inc si
- jmp num_loop
- to_bin endp
- CodeSeg ENDS
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement