Команды обработки строк - Assembler
Формулировка задачи:
Доброго времени суток. Ну помогите, будьте так добры. нужно написать программу в турбо ассемблере
Имеются следующие определения:
Используя команды обработки строк, выполнить:
Сохранение содержимого регистра AX в области по адресу PRLINE +5
По программе есть такой вариант :
DATASG SEGMENT PARA CONAME DB 'SPASE EXPLORES INS' PRLINE DB 20 DUP('')
MASM MODEL small STACK 256 .data Coname db 'Space Explores Ins $' prline db 20 dup (?) strlen dw 20 outstring dw (?) .code assume ds:@data,es:@data main: mov ax,@data ;привязка ds и es mov ds,ax ;к сегменту mov es,ax ;данных cld ;DF:=0 lea di,prline ;в di-адрес add di,5 ;5-го элемента mov al,'x' ;первый символ stos prline[5] ;пересылка mov al,'y' ;второй символ stos prline[6] ;пересылка lea dx,prline ;вывод полученной mov ah,09h ;строки int 21h mov ax,4c00h ;завершение int 21h ;программы end main
Решение задачи: «Команды обработки строк»
textual
Листинг программы
MODEL small STACK 256 .data Coname db 'Space Explores Ins $' prline db 20 dup('$') .code assume ds:@data,es:@data main: mov ax,@data ;привязка ds и es mov ds,ax ;к сегменту mov es,ax ;данных lea dx,Coname ;вывод полученной mov ah,09h ;строки int 21h cld ;DF:=0 lea di,prline ;в di-адрес add di,5 ;5-го элемента mov al,'x' ;первый символ stosb ;пересылка mov al,'y' ;второй символ stosb ;пересылка lea dx,prline+5 ;вывод полученной mov ah,09h ;строки int 21h mov ax,4c00h ;завершение int 21h ;программы end main
Объяснение кода листинга программы
- MODEL small - это директива, которая указывает на модель памяти, используемую в программе. В данном случае используется модель small, что означает, что данные и код программы будут размещены в одном сегменте.
- STACK 256 - это директива, которая определяет размер стека в 256 байт.
- .data - это сегмент данных. Здесь определяются две переменные: Coname и prline.
- Coname db 'Space Explores Ins $' - это определение строки Coname, которая содержит текст
Space Explores Ins $
. - prline db 20 dup('$') - это определение строки prline, которая содержит 20 символов
$
. - .code - это сегмент кода. Здесь находится точка входа в программу - main.
- assume ds:@data,es:@data - это директива, которая указывает компилятору, что сегменты данных и кода совпадают.
- main: - это точка входа в программу.
- mov ax,@data - это команда, которая привязывает сегменты данных и кода к регистру ax.
- mov ds,ax - это команда, которая устанавливает сегмент данных равным сегменту кода.
- mov es,ax - это команда, которая устанавливает сегмент стека равным сегменту кода.
- lea dx,Coname - это команда, которая загружает в регистр dx адрес строки Coname.
- mov ah,09h - это команда, которая устанавливает код функции, которую нужно вызвать, равным 09h.
- int 21h - это команда, которая вызывает функцию с кодом 09h, которая выводит на экран содержимое регистра dx.
- cld - это команда, которая устанавливает флаг направления в 0, что означает, что при последующих операциях чтения или записи будет использоваться прямая адресация.
- lea di,prline - это команда, которая загружает в регистр di адрес строки prline.
- add di,5 - это команда, которая увеличивает значение регистра di на 5.
- mov al,'x' - это команда, которая загружает в регистр al символ 'x'.
- stosb - это команда, которая записывает символ из регистра al в память по адресу, содержащемуся в регистре di.
- mov al,'y' - это команда, которая загружает в регистр al символ 'y'.
- stosb - это команда, которая записывает символ из регистра al в память по адресу, содержащемуся в регистре di.
- lea dx,prline+5 - это команда, которая загружает в регистр dx адрес строки prline, смещенный на 5 символов вправо.
- mov ah,09h - это команда, которая устанавливает код функции, которую нужно вызвать, равным 09h.
- int 21h - это команда, которая вызывает функцию с кодом 09h, которая выводит на экран содержимое регистра dx.
- mov ax,4c00h - это команда, которая загружает в регистр ax значение 4c00h, что означает конец программы.
- int 21h - это команда, которая вызывает функцию с кодом 09h, которая выводит на экран содержимое регистра ax.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д