Копирование строк - Assembler (223408)
Формулировка задачи:
Дорогие программисты у меня есть задача (Составить программу производящую копирование строки из 15 символов в расположенную рядом область памяти.) Я в Ассемблере почти не разбираюсь, помогите решить задачу! Заранее благодарю!
Решение задачи: «Копирование строк»
textual
Листинг программы
.model small .386 .data src db '123456789ABCDEF' db 0Ah,0Dh,'$' dest db 15 dup (0) db 0Ah,0Dh,'$' .stack db 255 dup(?) .code start: mov ax,@data mov ds,ax mov es,ax mov ah,9 lea dx,src int 21h lea si,src lea di,dest mov cx,15 rep movsb mov ah,9 lea dx,dest int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- .model small — описание модели сегментной памяти
- .386 — указание на использование 32-битных регистров
- .data — начало блока данных
- src db '123456789ABCDEF' — строка для копирования
- db 0Ah,0Dh,'$' — символ конца строки и символ доллара
- dest db 15 dup (0) — буфер для копирования
- db 0Ah,0Dh,'$' — символ конца строки и символ доллара
- .stack db 255 dup(?) — стек
- .code — начало блока кода
- start: — метка начала программы
- mov ax,@data — установка регистра ax на смещение @data
- mov ds,ax — установка сегмента данных на значение регистра ax
- mov es,ax — установка сегмента буфера на значение сегмента данных
- mov ah,9 — установка регистра ah на 9 (передача строки)
- lea dx,src — загрузка адреса строки в регистр dx
- int 21h — вызов функции 21h (передача строки)
- lea si,src — загрузка адреса начала строки в регистр si
- lea di,dest — загрузка адреса начала буфера в регистр di
- mov cx,15 — установка регистра cx на 15 (длина строки)
- rep movsb — повторяющийся блок перемещения строки в буфер
- mov ah,9 — установка регистра ah на 9 (передача строки)
- lea dx,dest — загрузка адреса строки в регистр dx
- int 21h — вызов функции 21h (передача строки)
- mov ah,4Ch — установка регистра ah на 4Ch (завершение работы)
- mov al,00h — установка регистра al на 00h (код завершения)
- int 21h — вызов функции 21h (завершение работы)
- end start — конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д