Convert a real number into binary – assembly

I need to convert the entered real number into binary through assembler. I have this same code, only with integers and it works, but not here. When I enter with a period, e.g. 3.1 throws an error and stops the program, and when I enter with a comma, e.g. the 3,1 console just sits there and nothing happens.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>includelib legacy_stdio_definitions.lib
includelib ucrt.lib
EXTERN printf: PROC
EXTERN scanf: PROC
EXTERN exit: PROC
.data
unos BYTE "Unesite dva realna broja: ", 0
ispis BYTE "Broj 1: %f (binarno): %s nBroj 2: %f (binarno): %s n", 0
formatStr BYTE "%f", 0
a REAL4 ?
b REAL4 ?
binBr1 BYTE 33 DUP(?)
binBr2 BYTE 33 DUP(?)
.code
public asmReal
konverBin proc
push rbx
mov rbx, rdi
mov ecx, 32
convertLoop:
shl eax, 1
mov byte ptr [rbx], '0'
adc byte ptr [rbx], 0
add rbx, 1
loop convertLoop
mov byte ptr [rbx], 0
pop rbx
ret
konverBin endp
asmReal proc
lea rcx, unos
call printf
input_a:
lea rcx, formatStr
lea rdx, a
call scanf
cmp eax, 1
jne input_a
input_b:
lea rcx, formatStr
lea rdx, b
call scanf
cmp eax, 1
jne input_b
lea rdi, binBr1
mov eax, dword ptr [a]
call konverBin
lea rdi, binBr2
mov eax, dword ptr [b]
call konverBin
mov rcx, OFFSET ispis
movss xmm0, dword ptr [a]
movss xmm1, dword ptr [b]
lea r8, binBr1
lea r9, binBr2
call printf
xor ecx, ecx
call exit
asmReal endp
END
</code>
<code>includelib legacy_stdio_definitions.lib includelib ucrt.lib EXTERN printf: PROC EXTERN scanf: PROC EXTERN exit: PROC .data unos BYTE "Unesite dva realna broja: ", 0 ispis BYTE "Broj 1: %f (binarno): %s nBroj 2: %f (binarno): %s n", 0 formatStr BYTE "%f", 0 a REAL4 ? b REAL4 ? binBr1 BYTE 33 DUP(?) binBr2 BYTE 33 DUP(?) .code public asmReal konverBin proc push rbx mov rbx, rdi mov ecx, 32 convertLoop: shl eax, 1 mov byte ptr [rbx], '0' adc byte ptr [rbx], 0 add rbx, 1 loop convertLoop mov byte ptr [rbx], 0 pop rbx ret konverBin endp asmReal proc lea rcx, unos call printf input_a: lea rcx, formatStr lea rdx, a call scanf cmp eax, 1 jne input_a input_b: lea rcx, formatStr lea rdx, b call scanf cmp eax, 1 jne input_b lea rdi, binBr1 mov eax, dword ptr [a] call konverBin lea rdi, binBr2 mov eax, dword ptr [b] call konverBin mov rcx, OFFSET ispis movss xmm0, dword ptr [a] movss xmm1, dword ptr [b] lea r8, binBr1 lea r9, binBr2 call printf xor ecx, ecx call exit asmReal endp END </code>
includelib legacy_stdio_definitions.lib
includelib ucrt.lib

EXTERN printf: PROC
EXTERN scanf: PROC
EXTERN exit: PROC

.data
unos BYTE "Unesite dva realna broja: ", 0              
ispis BYTE "Broj 1: %f (binarno): %s nBroj 2: %f (binarno): %s n", 0  
formatStr BYTE "%f", 0                                 
a REAL4 ?                                              
b REAL4 ?                                              
binBr1 BYTE 33 DUP(?)                                    
binBr2 BYTE 33 DUP(?)                                   

.code
public asmReal

konverBin proc
    push rbx                                            
    mov rbx, rdi                                        
    mov ecx, 32                                         

convertLoop:
    shl eax, 1                                          
    mov byte ptr [rbx], '0'                             
    adc byte ptr [rbx], 0                               
    add rbx, 1                                          
    loop convertLoop                                    

    mov byte ptr [rbx], 0                                       
    pop rbx                                             
    ret         
konverBin endp


asmReal proc
    lea     rcx, unos                                   
    call    printf                                      

input_a:
    lea     rcx, formatStr                              
    lea     rdx, a                                      
    call    scanf                                       
    cmp     eax, 1                                      
    jne     input_a                                    

input_b:
    lea     rcx, formatStr                              
    lea     rdx, b                                      
    call    scanf                                       
    cmp     eax, 1                                      
    jne     input_b                                     


    lea     rdi, binBr1
    mov     eax, dword ptr [a]
    call    konverBin


    lea     rdi, binBr2
    mov     eax, dword ptr [b]
    call    konverBin


    mov     rcx, OFFSET ispis
    movss   xmm0, dword ptr [a]                         
    movss   xmm1, dword ptr [b]                         
    lea     r8, binBr1
    lea     r9, binBr2
    call    printf

    xor     ecx, ecx                                    
    call    exit                                        

asmReal endp
END

This is the error and exception when working with period (e.g. 3.1):

Exception thrown at 0x00007FFD529CB524 (ucrtbase.dll) in nekoeko.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

In stdio.h:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>#else
{
return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
}
#endif
</code>
<code>#else { return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); } #endif </code>
#else
{
    return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
}
#endif

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật