Написать процедуру, которая проверяет, является ли симметричным массив из N слов - Assembler (223164)
Формулировка задачи:
Прокомментируйте пожалуйста каждую строчку кода.
Вот задание для программы:
Написать процедуру, которая проверяет, является ли симметричным массив из 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
Листинг программы
outstr macro push ax push dx mov ah, 09h int 21h pop dx pop ax endm
Объяснение кода листинга программы
- Объявляется макрос с названием
outstr
. - Макрос
outstr
начинается. - Регистр
ax
помещается в стек. - Регистр
dx
помещается в стек. - В регистр
ah
загружается значение 09h, который представляет функцию вывода строки. - Вызывается прерывание 21h для вывода строки.
- Регистр
dx
выталкивается из стека. - Регистр
ax
выталкивается из стека. - Макрос
outstr
завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д