Массив: При записи элементов массивов в регистры, значение регистра каждый раз меняется, хотя каждый элемент равен 1. - Assembler
Формулировка задачи:
Здравствуйте!
Задание:
Сравниваю два элемента разных массивов, для проверки сделал все элементы равными единице. При записи элементов массивов в регистры, значение регистра каждый раз меняется, хотя каждый элемент равен 1. Проверял чз отладчик. Не могу разобраться, что делаю не так (
Подскажите, пожалуйста.
Код:
title lab2 assume cs:cod,ss:s,ds:d s segment stack dw 128 dup(?) s ends d segment A db 1,1,1,1,1,1,1,1,1,1 B db 1,1,1,1,1,1,1,1 X db 10 dup (0) cnt db 0 lenA dw $-A lenB dw $-B d ends cod segment start: mov bx,d mov ds,dx mov bp,0 mov bx,0 xor si,0 mov cx,0 mov ax,0 mov dx,0 go: cmp cx,7 je p mov si,cx add cx,1 mov al,[B+si] ;запись элемента первого массива в регистр xor ah,ah mov si,bp mov dl,[A+si] ;запись элемента второго массива в регистр xor dh,dh cmp al,dl ;сравнение двух элементов массива je count jmp go count: add bl,1 xor bh,bh jmp go p: mov si,bp mov [X+si],bl xor ch,ch mov bl,0 mov cx,0 cmp bp,9 je exit add bp,1 jmp go print: mov cx,9 mov si,0 jmp put2 put2: mov ah,02h mov dl,X[si] add dl,30h int 21h add si,1 loop put2 exit: call print mov ax,4C00h int 21h cod ends end start
Сформировать массив [Xi], элементы которого равны частоте
встречаемости элементов массива [Bi] среди элементов массива [Ai]
Определить, какой элемент массива [Bi] чаще всего встречается в [Ai].
Решение задачи: «Массив: При записи элементов массивов в регистры, значение регистра каждый раз меняется, хотя каждый элемент равен 1.»
textual
Листинг программы
for i:=0 to M-1 do begin X[i]:=0; for j:=0 to N-1 do if A[j]=B[i] then X[i]:=X[i]+1; end;
Объяснение кода листинга программы
- Задается два массива A и B, а также массив X.
- Цикл for i:=0 to M-1 выполняет N итераций для каждого элемента массива A.
- На каждой итерации значение X[i] устанавливается равным 0.
- Цикл for j:=0 to N-1 выполняет итерацию для каждого элемента массива B.
- Если A[j] равно B[i], то значение X[i] увеличивается на 1.
- По завершении всех итераций, значения массива X будут содержать количество совпадений каждого элемента массива A с элементами массива B.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д