Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 100h
- section '.data' data readable writable
- buffer db 6 ; Буфер для хранения введенного числа
- length equ $-buffer ; Длина буфера
- section '.text' code readable executable
- start:
- mov ah, 0Ah ; Загружаем номер функции 0Ah (ввод строки)
- mov dx, buffer ; Загружаем адрес буфера
- int 21h ; Вызываем прерывание 21h для ввода строки
- ; Преобразуем введенную строку в число
- mov si, buffer ; Загружаем адрес буфера в регистр si
- xor ax, ax ; Обнуляем регистр ax (для хранения числа)
- mov cl, length ; Загружаем длину введенной строки
- convert_loop:
- mov dl, [si] ; Загружаем символ из буфера в регистр dl
- sub dl, '0' ; Преобразуем символ в цифру
- mul word [power_of_ten] ; Умножаем текущее число на 10
- add ax, dx ; Добавляем цифру к числу
- inc si ; Увеличиваем указатель на буфер
- loop convert_loop
- ; Выводим введенное число
- mov ah, 02h ; Загружаем номер функции 02h (вывод символа)
- mov dl, ' ' ; Загружаем пробел для разделения вывода
- int 21h ; Вызываем прерывание 21h для вывода символа
- mov ah, 09h ; Загружаем номер функции 09h (вывод строки)
- mov dx, buffer ; Загружаем адрес буфера
- int 21h ; Вызываем прерывание 21h для вывода строки
- mov ah, 4Ch ; Загружаем номер функции 4Ch (завершение программы)
- xor al, al ; Устанавливаем код возврата 0
- int 21h ; Вызываем прерывание 21h для завершения программы
- section '.data' data readable writable
- power_of_ten dw 1 ; Инициализируем переменную для умножения на 10
- ; Буфер для хранения введенного числа
- buffer db 6 dup (?)
- section '.data' data readable
- message db "Enter a number: $"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement