Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2013, 17:10   #1
Mississippi
Новичок
Джуниор
 
Регистрация: 23.06.2013
Сообщений: 1
Восклицание работа с массивами( Assembler, TASM )

что делает программа я знаю, но в коде разобраться не могу. Нужен алгоритм, помогите пожалуйста, буду очень признателен.
Код программы:

Код:

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
Mississippi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами (assembler) erazer89 Помощь студентам 3 19.12.2008 21:25
Работа с массивами (assembler) gvay Помощь студентам 3 13.12.2008 18:20
Работа с массивами (assembler) deni Помощь студентам 2 12.12.2008 10:28
Работа с массивами (assembler) Gespenst Помощь студентам 1 21.04.2008 14:34