Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Функция для вывода строки, адрес на которой хранится в eax, на экран
- swrite: ;Выводим строку на экран
- push edx; значения регистров сохраняются в стек
- push ecx
- push ebx
- push eax
- call _strlen; вызов подпрограммы для вычисления длины строки
- mov edx, eax; сохраняем вычисленную длину строки в edx
- pop eax; восстанавливаем из стека указатель на строку
- ; инициализация остальных регистров для системного вызова SYS_WRITE
- mov ecx, eax
- mov eax, 4
- mov ebx, 1
- int 80h; выполняем системный вызов
- ; восстанавливаем значения остальных регистров
- pop ebx
- pop ecx
- pop edx
- ret
- ;Функция для ввода строки с клавиатуры в eax-адрес длины ebx
- sread:
- push edx ;Сохраняем исходные значения edx и ebx
- push ebx
- mov ecx, eax ;Перемещаем исходные данные
- mov edx, ebx
- mov eax, 3 ;Подготавливаемся к считыванию
- mov ebx, 0
- int 80h ;Системный вызов считывания
- pop edx ;Возвращаем исходные значения edx и ebx
- pop ebx
- ret
- section .bss
- input1 resb 256
- input2 resb 256
- …
- ;Суммирование чисел
- _summ:
- ;Вводим числа
- mov eax, input1
- mov ebx, 256
- call sread
- mov eax, input2
- mov ebx, 256
- call sread
- mov eax, input1
- adc eax,input2
- daa ;Коррекция чисел BCD формата
- call swrite
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement