При чтении com порта считывается количество байт равное размеру отведенного буфера (bufrd), а не количество переданных байт. На порту висит FT с замкнутыми RX TX. Код: invoke ReadFile, hComPort, addr bufrd, ; Если bufrd == 16 будет принято 16 байт, если bufrd == 64 соответственно 64 байта. _btr, addr temp, addr overlappedRd В отладчике получается такая петрушка: bufwr = Tx begin!!! (misk.asm, 200) ; Это то что передали. temp = 5 (misk.asm, 175) ; temp это количество последовательно принимаемых байт. temp = 17 (misk.asm, 175) temp = 17 (misk.asm, 175) temp = 16 (misk.asm, 175) temp = 9 (misk.asm, 175) Полный текст функций (ReadThread и WriteThread) в прилагаемом файле.