Ассемблер принцип работы программы

программирование программы assembler ассемблер

Объясните принцип работы программы в двух словах:

; masm dos com #
.286
.model small
.stack 100h
.data
; выводимые сообщения в кодировке DOS
mes1 db '‚ўҐ¤Ё бва®Єг Ё ­ ¦¬Ё ­  Enter',0Dh,0Ah,'$'
mes2 db 0Dh,0Ah,'Џ®«г祭­ п бва®Є : '

dest db 510 dup('$') ; место для размещения преобразованной строки
buff db 255,?,255 dup(?) ; структура для ввода строки:
; максимальная длина = 255
; длина введенной строки
; место для помещения вводимой строки
.code ; сегмент кода
start:
mov ax,@data ; настройка регистра
mov ds,ax ; сегмента данных
mov es,ax ; и вспомогательного регистров
; установка видеорежима
mov ax,3 ; функция установки видеорежима с очисткой экрана
int 10h
; вывод приглашения к вводу
mov ah,9 ; функция вывода сообщения
mov dx,offset mes1 ; адрес выводимого сообщения
int 21h
; ввод строки
mov ah,0Ah ; функция ввода строки
mov dx,offset buff ; адрес структуры для ввода строки
int 21h
; проверка длины строки
mov ch,0 ; старший байт длины строки = 0
mov cl,buff+1 ; младший байт равен длине строки
jcxz a2 ; если длина строки=0 - переходим на метку, строка пустая
; обработка строки
mov si,offset buff+2 ; адрес начала введенной строки
mov di,offset dest ; адрес для размещения результата обработки
mov ah,' ' ; добавляемый символ - пробел
cld ; строковые операции производим слева на право
a1: ; цикл обработки символов строки
lodsb ; AL=[SI] - текущий символ, SI=SI+1
stosw ; [DI]=AX (AL+' '), DI=DI+2
loop a1 ; повторять СХ раз (для всех символов строки)
a2:
dec di ; адрес символа после последнего
mov byte ptr [di],'$' ; признак конца строки для вывода
; вывод результата
mov ah,9 ; функция вывода сообщения
mov dx,offset mes2 ; выводимое сообщение
int 21h
Ответы:
> ; установка видеорежима
> ; вывод приглашения к вводу
> ; ввод строки
> ; проверка длины строки
> ; обработка строки
>              ; добавляемый символ - пробел
> ; вывод результата


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.