Написать процедуру, которая проверяет, является ли симметричным массив из N слов - Assembler (224511)

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

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

Вот задание для программы: Написать процедуру, которая проверяет, является ли симметричным массив из N слов. Используя процедуру исследовать два массива и выдать сообщения " симметричен " или "не симметричен". Выполнить это упражнение при условии, что параметр передается процедуре через регистр.Есть через стек:
include io.asm
STACK_ SEGMENT STACK
DB 100h DUP(?)
STACK_ ENDS

data segment
a dw 1111,2,3,2,1111
b dw 1,2,3,5,7,1
yes db "Симметричен*",10,13,"$"
no db "Не симметричен",10,13,"$"
data ends

code segment
assume cs:code,ds:data,ss:stack_
palindr proc near
push bp
mov bp,sp
 
push bx
push cx
push si
push dx
mov ax,1 
mov bx,[bp+6]
mov cx,[bp+4]
mov si,bx
 
mov dx,cx
dec dx
shl dx,1
mov si,bx
add si,dx
shr cx,1
 
comp_ends:
mov dx,[bx] 
cmp dx,[si]
je eqq
mov ax,0
jmp obloms
eqq: 
add bx,2
sub si,2
loop comp_ends 
 
obloms: 
pop si
pop cx
pop bx
pop dx
 
mov sp,bp
pop bp
ret;
endp palindr
 
start:
mov ax,data
mov ds,ax
 
lea bx,a
push bx
mov bx,5
push bx
call palindr
pop bx
pop bx
 
lea dx,yes
cmp ax,0
jne yout1
lea dx,no
yout1:
outstr

lea bx,b
push bx
mov bx,6
push bx
call palindr
pop bx
pop bx
 
lea dx,yes
cmp ax,0
jne yout2
lea dx,no
yout2:
outstr
 
MOV AX, 4C00h
INT 21h ;End Program
 
code ends
 
end start

Решение задачи: «Написать процедуру, которая проверяет, является ли симметричным массив из N слов»

textual
Листинг программы
pop si
pop cx
pop bx
pop dx

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


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

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

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