ВУЗы и колледжи

Нужна помощь с Ассемблером!!!!

Ввести с клавиатуры строку, содержащую несколько точек. Преобра-зовать строку, чтобы после каждой точки был пробел, и следующая буква после точки были заглавная. Вывести результаты на экран.
Смешно. В разделе "Программирование" задают вопросы о чём угодно, только не о программировании, зато вопросы по программированию можно найти в любом разделе, кроме "Программирования".
А хотите ли вы, чтобы вам помогли? Нет, вы хотите, чтобы за вас написали программу.

Пожалуйста, мне не жалко.
32-разрядное консольное приложение Windows. А если консольное, то естественно работает только с DOS-кодировкой, т. е. CP866.

format PE console
entry N81648428
include 'win32ax.inc'
stack 200h

section '.data' data readable writeable
Prompt db 'Bвeдитe cтpoкy:', 13, 10, 0
Result db 10, 'Преобразованная строка: ', 13, 10, 0
txtQuit db 13, 10, 10, 'Для завершения работы нажмите любую клавишу... ' ,0
hStdIn rd 1
hStdOut rd 1
InBuf rb 1026
OutBuf rb 2049

section '.code' code readable executable
N81648428:
    invoke GetStdHandle, STD_OUTPUT_HANDLE
    mov [hStdOut], eax
    invoke GetStdHandle, STD_INPUT_HANDLE
    mov [hStdIn], eax
    stdcall Print, Prompt
    invoke ReadConsole, [hStdIn], InBuf, 1026, OutBuf, NULL
    mov esi, InBuf
    mov edi, OutBuf
ResetFlag:
    xor bh, bh
MainLoop:
    lodsb
    cmp al, 0Dh
    je EndLoop
    test bh, bh
    jz CopyChar
    mov bl, 20h
    cmp al, 61h
    jb CopyChar
    cmp al, 7Ah
    jbe UpCase
    cmp al, 0A0h
    jb CopyChar
    cmp al, 0AFh
    jbe UpCase
    cmp al, 0E0h
    jb CopyChar
    add bl, 30h
    cmp al, 0EFh
    jbe UpCase
    mov bl, 1
    cmp al, 0F7h
    ja CopyChar
UpCase:
    sub al, bl
CopyChar:
    stosb
    cmp al, 2Eh
    sete bh
    jne ResetFlag
    mov al, 20h
    stosb
    jmp MainLoop
EndLoop:
    xor al,al
    stosb
    stdcall Print, Result
    stdcall Print, OutBuf
    stdcall Print, txtQuit
Inkey:
    invoke kbhit
    and eax, eax
    jz Inkey
    invoke ExitProcess, NULL

proc Print stdcall, Str: dword
    invoke lstrlenA, [Str]
    invoke WriteConsole, [hStdOut], [Str], eax, NULL, NULL
    ret
endp

section '.idata' import data readable
library kernel32, 'kernel32.dll', msvcrt, 'msvcrt.dll'
include 'api/kernel32.inc'
import msvcrt, kbhit, '_kbhit'

Хома Уруру
Хома Уруру
51 590
Лучший ответ