Сохранение введенного символа - Assembler

Узнай цену своей работы

Формулировка задачи:

можно ли как-нибудь взять отсюда введенный знак(я имею ввиду на каком моменте введенный символ и где будет сохранен?)?
push cx               
    mov cx,ax               
    mov ah,0Ah             
    mov [buffer],al        
    mov byte[buffer+1],0   
    mov dx,buffer           
    int 21h
    mov al,[buffer+1]
    mov ah,ch              
    pop cx
    ret
или есть ли какие-нибудь функции, чтобы введенный символ был явно в каком-либо регистре/стеке

Решение задачи: «Сохранение введенного символа»

textual
Листинг программы
MOV   AH,1       ; ввод с эхо средствами DOS
INT   21h        ; символ в AL
 
MOV   AH,0       ; ввод без эхо средствами BIOS
INT   16h        ; символ в AL
 
MOV   SI,buff    ; SI указывает на адрес строки в памяти
LODSB            ; символ в AL

Объяснение кода листинга программы

  1. MOV AH,1 — устанавливает значение регистра AH равным 1, используется для ввода с эхо средствами DOS.
  2. INT 21h — выполняет ввод с эхо средствами DOS, символ вводится в регистр AL.
  3. MOV AH,0 — устанавливает значение регистра AH равным 0, используется для ввода без эхо средствами BIOS.
  4. INT 16h — выполняет ввод без эхо средствами BIOS, символ вводится в регистр AL.
  5. MOV SI,buff — устанавливает значение регистра SI равным адресу строки в памяти, куда будет записан символ.
  6. LODSB — выполняет ввод одного символа из стандартного ввода в регистр AL и обновляет регистр SI для указания следующего байта в строке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы