call _putch ;вывели символ
pop eax
pop ecx ;забрали счетчик из стека
loop r ;всю строку вывели?
;формирование числа в десятичном виде
inc counter ;увеличили счетчик числа символов
mov ebx, eax
sub ebx, '0' ;взяли считанную цифру
cmp ebx, 10
jl @4
sub ebx, 39
@4: mov eax, number ;взяли старую часть
mov edx, 16 ;базу системы счисления
mul edx ;и перемножили
add eax, ebx ;добавили новую цифру
mov number, eax ;сформировали число в number
call putDec
cmp counter, 6 ;ограничение в 6 цифр
jl more ;можно читать ещё
q: call putDec
mov eax, number ;сформированное десятичное число
ret
readhex endp
;основная рабочая процедура. считывает два числа,
;производит их суммирование
working proc NEAR
;получим нужные хэндлы
call getHandles
;позицию текста
mov CRD.X, 0
mov CRD.Y, 1
push CRD
push STDOUT
call SetConsoleCursorPosition@8
;приглашение к вводу
push 0
push offset lens
push g1len
push offset get1
push STDOUT
call WriteConsoleA@20
;новую позицию
mov CRD.X, 20
push CRD
push STDOUT
call SetConsoleCursorPosition@8
;обработка считывания первого числа
call readhex ;считать первое число
push number
pop num1 ;сохранили число
mov esi, ptr1
mov edi, num1ptr
mov ecx, counter
rep movsb ;сохранили строковое представление числа
;позицию текста
mov CRD.X, 0
inc CRD.Y
push CRD
push STDOUT
call SetConsoleCursorPosition@8
;приглашение к вводу
push 0
push offset lens
push g2len
push offset get2
push STDOUT
call WriteConsoleA@20
;позицию текста
mov CRD.X,20
push CRD
push STDOUT
call SetConsoleCursorPosition@8
;обработка считывания первого числа
call readhex ;считать второе число
push number
pop num2 ;сохранили число
mov esi, ptr1
mov edi, num2ptr
mov ecx, counter
rep movsb ;сохранили строковое представление числа
;позицию текста
mov CRD.X, 0
add CRD.Y, 2 ;перешли на новую строку
push CRD
push STDOUT
call SetConsoleCursorPosition@8
;текстовая отбивка
push 0
push offset lens
push sumlen
push offset sump
push STDOUT
call WriteConsoleA@20
;просуммировали числа
mov eax, num2
add eax, num1
mov number, eax
mov nsum, eax
call putDec
call putHex
mov esi, ptr1
mov edi, sumptr
mov ecx, 10
rep movsb ;сохранили строковое представление числа
mov CRD.X,0
inc CRD.Y ;перешли на новую строку
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.