Ввести с клавиатуры два слова и вывести в следующей строке второе слово и последнюю букву первого слова - Assembler
Формулировка задачи:
Ввести с клавиатуры два слова и вывести в следующей строке второе слово и последнюю букву первого слова.
Решение задачи: «Ввести с клавиатуры два слова и вывести в следующей строке второе слово и последнюю букву первого слова»
textual
Листинг программы
@stack segment para stack db 1024 dup(?) @stack ends @data segment KbdBuf1 db 80, ?, 81 dup(?) KbdBuf2 db 80, ?, 81 dup(?) Prompt1 db 'Enter the 1st word: ', 0Dh, 0Ah, '$' Prompt2 db 'Enter the 2nd word: ', 0Dh, 0Ah, '$' MsgRes db 'Result: ', 0Dh, 0Ah, '$' CrLf db 0Dh, 0Ah, '$' @data ends @code segment assume cs:@code, ds:@data, ss:@stack main proc ;инициализация сегментного регистра данных mov ax, @data mov ds, ax ;ввод 1-го слова @@FirstWord: mov ah, 09h lea dx, [Prompt1] int 21h mov ah, 0Ah lea dx, [KbdBuf1] int 21h mov ah, 09h lea dx, [CrLf] int 21h lea si, [KbdBuf1+1] mov cx, 0 mov cl, [si] jcxz @@FirstWord ;ввод 2-го слова @@SecondWord: mov ah, 09h lea dx, [Prompt2] int 21h mov ah, 0Ah lea dx, [KbdBuf2] int 21h mov ah, 09h lea dx, [CrLf] int 21h lea si, [KbdBuf2+1] mov cx, 0 mov cl, [si] jcxz @@SecondWord ;вывод результата mov ah, 09h lea dx, [MsgRes] int 21h ;вывод второго слова mov ah, 40h mov bx, 1 mov cx, 0 mov cl, [KbdBuf2+1] lea dx, [KbdBuf2+2] int 21h ;вывод пробела mov ah, 02h mov dl, ' ' int 21h ;вывод последней буквы 1-го слова lea si, [KbdBuf1+1] mov cx, 0 mov cl, [si] add si, cx mov ah, 02h mov dl, [si] int 21h ;перевод строки mov ah, 09h lea dx, [CrLf] int 21h ;завершение программы mov ax, 4C00h int 21h main endp @code ends end main
Объяснение кода листинга программы
- Ввод первых двух слов с клавиатуры.
- Вывод второго слова и последней буквы первого слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д