Работа со строковыми командами. - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогите написать 2 программы на Ассемблере. 1) Написать программу обнуления массива слов длинной 100 элементов, использую все возможные режимы адресации. 2) Написать программу пересылки массива байтов длиной 256 элементов к другому массива такой же длины, используя все возможные режимы адресации. Первую я начал, но все равно не работает. Не понимаю я этот Ассемблер. Помогите, пожалуйста.
STACK_SEG SEGMENT PARA STACK 'STACK' 
DB 100 DUP(?) 
STACK_SEG ENDS 
CODE_SEG SEGMENT PARA 'CODE' 
ASSUME CS:CODE_SEG, SS:CODE_SEG, DS:CODE_SEG, ES:STACK_SEG 
NEW_PROC PROC NEAR 
BEG_: 
 
MOV SI, STACK_SEG 
MOV CX, SI 
SUB AL, AL 
REP STOSB 
 
NEW_PROC ENDP 
CODE_SEG ENDS 
END BEG_

Решение задачи: «Работа со строковыми командами.»

textual
Листинг программы
lea si,mas1
lea di,mas2
mov cx,256
rep movsb

Объяснение кода листинга программы

  1. lea si,mas1 - данная команда выполняет загрузку смещения (index) для регистра si из памяти (mas1).
  2. lea di,mas2 - данная команда выполняет загрузку смещения (index) для регистра di из памяти (mas2).
  3. mov cx,256 - данная команда выполняет копирование значения 256 в регистр cx.
  4. rep movsb - данная команда выполняет повторение цикла, который состоит из операции перемещения данных (movsb), до тех пор, пока значение регистра cx не станет равным нулю.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5