diff --git a/configure_options.cmake b/configure_options.cmake
index 849231c..ceb6539 100644
--- a/configure_options.cmake
+++ b/configure_options.cmake
@@ -79,6 +79,7 @@ elseif(TARGET_PLATFORM STREQUAL X86_64)
 elseif(TARGET_PLATFORM MATCHES X86.*)
     if(MSVC)
         list(APPEND WIN_ASSEMBLY_LIST src/x86/sysv_intel.S)
+        set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
         enable_language(ASM_MASM)
     else()
         list(APPEND SOURCES_LIST src/x86/sysv.S)
@@ -329,13 +330,17 @@ foreach(ASM_PATH IN LISTS WIN_ASSEMBLY_LIST)
 
     set_source_files_properties("${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm" PROPERTIES GENERATED TRUE)
 
-    add_custom_command(
-        COMMAND "${CMAKE_ASM_MASM_COMPILER}" /Fo "${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj" "${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm"
-        DEPENDS ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm
-        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj
-        COMMENT "Assembling ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm")
+    if(TARGET_PLATFORM MATCHES X86.*)
+        list(APPEND SOURCES_LIST ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm)
+    else()
+        add_custom_command(
+            COMMAND "${CMAKE_ASM_MASM_COMPILER}" /Fo "${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj" "${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm"
+            DEPENDS ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm
+            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj
+            COMMENT "Assembling ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm")
 
-    set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj PROPERTIES EXTERNAL_OBJECT TRUE)
+        set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj PROPERTIES EXTERNAL_OBJECT TRUE)
 
-    list(APPEND OBJECTS_LIST ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj)
+        list(APPEND OBJECTS_LIST ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj)
+    endif()
 endforeach()
