Advertisement
Vladislav8653

input

May 29th, 2023
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org 100h
  2.  
  3. section '.data' data readable writable
  4.     buffer db 6     ; Буфер для хранения введенного числа
  5.     length equ $-buffer ; Длина буфера
  6.  
  7. section '.text' code readable executable
  8.     start:
  9.         mov ah, 0Ah    ; Загружаем номер функции 0Ah (ввод строки)
  10.         mov dx, buffer ; Загружаем адрес буфера
  11.         int 21h        ; Вызываем прерывание 21h для ввода строки
  12.  
  13.         ; Преобразуем введенную строку в число
  14.         mov si, buffer ; Загружаем адрес буфера в регистр si
  15.         xor ax, ax     ; Обнуляем регистр ax (для хранения числа)
  16.         mov cl, length ; Загружаем длину введенной строки
  17.  
  18.     convert_loop:
  19.         mov dl, [si]   ; Загружаем символ из буфера в регистр dl
  20.         sub dl, '0'    ; Преобразуем символ в цифру
  21.         mul word [power_of_ten] ; Умножаем текущее число на 10
  22.         add ax, dx     ; Добавляем цифру к числу
  23.         inc si         ; Увеличиваем указатель на буфер
  24.         loop convert_loop
  25.  
  26.         ; Выводим введенное число
  27.         mov ah, 02h    ; Загружаем номер функции 02h (вывод символа)
  28.         mov dl, ' '    ; Загружаем пробел для разделения вывода
  29.         int 21h        ; Вызываем прерывание 21h для вывода символа
  30.  
  31.         mov ah, 09h    ; Загружаем номер функции 09h (вывод строки)
  32.         mov dx, buffer ; Загружаем адрес буфера
  33.         int 21h        ; Вызываем прерывание 21h для вывода строки
  34.  
  35.         mov ah, 4Ch    ; Загружаем номер функции 4Ch (завершение программы)
  36.         xor al, al     ; Устанавливаем код возврата 0
  37.         int 21h        ; Вызываем прерывание 21h для завершения программы
  38.  
  39. section '.data' data readable writable
  40.     power_of_ten dw 1   ; Инициализируем переменную для умножения на 10
  41.  
  42.     ; Буфер для хранения введенного числа
  43.     buffer db 6 dup (?)
  44.  
  45. section '.data' data readable
  46.     message db "Enter a number: $"
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement