Объединение строк под компилятор TASM - Assembler
Формулировка задачи:
Разработка программы объединения двух строк.
Все исходные данные вводятся в программу с клавиатуры.
Все результаты должны быть выведены на экран.
Разработка программ должна осуществляться с использованием компилятора TASM.
DWORD ptr ;объявление сегмента стека sseg segment stack db 256 dup (?) sseg ends ;объявление сегмента данных dseg segment str1 db 'str1 копируется в str2' ptr1 dd str1 len_str1=$-str1 a_str1 dd str1 str2 db len_str1 dup (' ') ptr2 dd str2 a_str2 dd str2 dseg ends ;объявление сегмента кода cseg segment assume cs:cseg, ds:dseg, ss:sseg start: ;инициализация регистра DS xor ax, ax mov ax, dseg mov ds, ax mov cx,len_str1 lds dx, [ptr1] les dx, [ptr2] cld rep movsb ;команды завершения программы mov ah, 4ch int 21h cseg ends end start
Решение задачи: «Объединение строк под компилятор TASM»
textual
Листинг программы
; tasm dos exe # comment * Разработка программы объединения двух строк. Все исходные данные вводятся в программу с клавиатуры. Все результаты должны быть выведены на экран. Разработка программ должна осуществляться с использованием компилятора TASM. * ;------------------------------------- .286 .model small .stack 256 .data str1 db 0Dh,0Ah,"введите первую строку",0Dh,0Ah,"$" str2 db 255,?,255 dup(?) str3 db 255,?,255 dup(?) str4 db 0Dh,0Ah,"результат копирования первой строки во вторую",0Dh,0Ah,"$" .code start: mov ax,3 int 10h mov ax,@data mov ds,ax mov es,ax mov ah,9 mov dx,offset str1 int 21h mov ah,0Ah mov dx,offset str2 mov di,dx add di,2 int 21h mov word ptr [str1+10],"тв" mov word ptr [str1+12],"ро" mov ah,9 mov dx,offset str1 int 21h mov ah,0Ah mov dx,offset str3 int 21h mov ah,9 mov dx,offset str4 int 21h mov ah,0 mov al,str2+1 add di,ax mov ch,0 mov cl,str3+1 mov si,offset str3+2 rep movsb mov byte ptr [di],'$' mov ah,9 mov dx,offset str2+2 int 21h mov ah,0 int 16h ;завершение программы mov ah,4Ch int 21h end start
Объяснение кода листинга программы
- Объединение строк в языке ассемблера TASM:
- Программа запрашивает две строки ввода с клавиатуры.
- Первая строка вводится в буфер
str1
, вторая строка вводится в буферstr2
. - Затем программа копирует первую строку во вторую, сохраняя длину строки.
- Длина строки сохраняется в регистре
dx
. - Затем программа выводит на экран результат копирования первой строки во вторую.
- Первая строка выводится на экран с помощью функции BIOS
int 21h
. - Затем программа завершается с помощью функции BIOS
int 4Ch
.
- Объединение строк в языке ассемблера TASM:
- Программа запрашивает две строки ввода с клавиатуры.
- Первая строка вводится в буфер
str1
, вторая строка вводится в буферstr2
. - Затем программа копирует первую строку во вторую, сохраняя длину строки.
- Длина строки сохраняется в регистре
dx
. - Затем программа выводит на экран результат копирования первой строки во вторую.
- Первая строка выводится на экран с помощью функции BIOS
int 21h
. - Затем программа завершается с помощью функции BIOS
int 4Ch
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д