Работа со строковыми командами. - 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
Объяснение кода листинга программы
lea si,mas1
- данная команда выполняет загрузку смещения (index) для регистра si из памяти (mas1).lea di,mas2
- данная команда выполняет загрузку смещения (index) для регистра di из памяти (mas2).mov cx,256
- данная команда выполняет копирование значения 256 в регистр cx.rep movsb
- данная команда выполняет повторение цикла, который состоит из операции перемещения данных (movsb), до тех пор, пока значение регистра cx не станет равным нулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д