Имеются два массива по 10 элементов. Сложить по модулю 2 биты 0 и 7. Результат во второй массив. - Assembler

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

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

Доброго времени суток. В универе получил задание написать прогу, но я совершенно не знаю ассемблера, а сдавать уже завтра Имеются два массива. В каждом 10 элементов. Между 0 и 7 битом каждого элемента первого массива происходит сложение по модулю 2, результат записывается во второй массив. Буду крайне признателен

Решение задачи: «Имеются два массива по 10 элементов. Сложить по модулю 2 биты 0 и 7. Результат во второй массив.»

textual
Листинг программы
.model small
.386
 
.data
arr1 db 12,37,29,56,84,90,58,63,47,76
arr2 db 10 dup(?)
 
.stack 
db 255 dup(?)
 
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
 
xor si,si
lea di,arr2
mov cx,10
action:
mov al,byte ptr arr1[si]
mov ah, 0
shl ax, 1
shr al, 1
xor al,ah
and al, 1
 
stosb
 
inc si
loop action
 
mov ah,4Ch
mov al,00h
int 21h
end start

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

.model small .386 .data arr1 db 12,37,29,56,84,90,58,63,47,76 arr2 db 10 dup(?) .stack db 255 dup(?) .code start: mov ax,@data mov ds,ax mov es,ax xor si,si lea di,arr2 mov cx,10 action: mov al,byte ptr arr1[si] mov ah, 0 shl ax, 1 shr al, 1 xor al,ah and al, 1 stosb inc si loop action mov ah,4Ch mov al,00h int 21h end start В этом коде:

  1. Сначала мы объявляем два массива: arr1 и arr2.
  2. Затем мы задаем начальные значения регистрам.
  3. Мы используем цикл для прохождения по обоим массивам.
  4. Внутри цикла мы получаем байт из arr1, используя его как индекс.
  5. Мы сдвигаем этот байт вправо на 1 бит и сохраняем результат в AX.
  6. Затем мы сдвигаем результат вправо на 1 бит и сохраняем его в AL.
  7. Мы инвертируем AL и AND его с 1, чтобы получить только старший бит.
  8. Мы записываем этот старший бит в arr2.
  9. Мы повторяем шаги 4-8 для каждого элемента в массиве.
  10. В конце мы выводим сообщение об успешном выполнении программы.

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


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

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

8   голосов , оценка 4.375 из 5
Похожие ответы