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

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

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

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

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

textual
Листинг программы
  1. lea si,mas1
  2. lea di,mas2
  3. mov cx,256
  4. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут