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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 23:29   #1
semAz
Новичок
Джуниор
 
Регистрация: 09.03.2010
Сообщений: 2
По умолчанию Не могу разобраться

Ребята, кому не трудно и не лень помогите сделать 2 программы на ассемблере, сам не могу разобраться.
Одномерный массив.
1)
Определить количество 2значных чисел в массиве и переслать их в другой массив.
Мой вариант (неправильно работающий ) :

Код:
include macro.lib
data segment
a db 100 dup (?)
b db 100 dup (?)
mes1 db 'Vvdeite elementi massiva: $'
mes2 db 'Vivod massiva: $'
mes3 db 'Vivod massiva dvuznachnih chisel: $'
mes4 db 'Kolichestvo dvuznachnih chisel: $'
probel db '   $'
data ends

sst segment stack
 db 128 dup (?)
sst ends

code segment
assume ds:data,ss:sst,cs:code

vvod proc
mov cx,7
mov bx,0
crlf
message mes1
crlf
m1: key_$2bin
crlf
mov [di][bx],al
inc bx
loop m2
jmp m3
m2: jmp m1
m3: ret
vvod endp

vivod proc
mov cx,7
mov bx,0
m4:
mov al,[di][bx]
cbw
print_number
message probel
inc bx
loop m5
jmp m6
m5: jmp m4
m6: ret 
vivod endp

begin:
mov ax,data
mov ds,ax

lea di,a
call vvod
crlf

message mes2

crlf
call vivod
mov cx,7
n1: 

cmp al,9
jA n2
jmp n1
n2: cmp al,100
jB n4
jmp n1
n4: 
mov [bp][si],al
inc si
loop n5
jmp n6
n5: jmp n1
n6:

lea bp,b

message mes3
crlf

call vivod

mov ax,4c00h
int 21h
code ends
end begin

Двумерный массив.
2)
Дан двумерный массив, найти в нём минимальное число, определить номер 
строки в котором он находится, если в чётной то все чётные числа сделать 0,
 если в не чётной то все не чётные числа сделать 0.

Мой вариант:

include macro.lib
data segment
A DB 100 dup(100 dup(?))
mes1 db 'Vvedite massiv$'
mes2 db 'Massiv$'
mes3 db 'Massiv chethih chisel$'
mes4 db 'Massiv ne chetnih chisel$'
mes5 db 'Minimalnoe chislo$'
probel db '   $'
data ends

sst segment stack
 db 128 dup (?)
sst ends

code segment
assume ds:data,ss:sst,cs:code
begin:
mov ax,data
mov ds,ax

crlf
message mes1
crlf
mov cx,3
mov bx,0
m1:
push cx
mov cx,3
mov si,0
m2: key_$2bin
crlf
mov si,1
mov bx,1
message mes5
crlf
mov al,a[bx],[si]
print_number
crlf
mov a[bx][si],al
cmp [si],al
jA n1
jmp n2
n1: a[bx][si],al
n2:
inc si
loop m3
jmp m4
m3:jmp m2
m4: pop cx
add bx,3
loop m5
jmp m6
m5: jmp m1
m6: crlf
message mes2
crlf
mov cx,3
mov bx,0
m7: push cx
crlf
mov cx,3
mov si,0
m8: mov al,a[bx][si]
cbw
print_number
message probel
inc si
loop m9
jmp m10
m9: jmp m8
m10: pop cx
add bx,3
loop m11
jmp m12
m11: jmp m7
m12:
mov ax,4c00h
int 21h
code ends
end begin

Последний раз редактировалось Stilet; 11.03.2010 в 08:15.
semAz вне форума Ответить с цитированием
Старый 10.03.2010, 02:11   #2
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Могу сделать за небольшое вознаграждение, icq под аватаром.
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 10.03.2010, 17:43   #3
semAz
Новичок
Джуниор
 
Регистрация: 09.03.2010
Сообщений: 2
По умолчанию

Эх... нет спасибо, буду сам разбираться
semAz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться Var17 Общие вопросы Delphi 6 27.03.2010 01:21
НЕ МОГУ РАЗОБРАТЬСЯ... GSV84 HTML и CSS 0 03.02.2010 01:38
не могу разобраться Инспектор ГУЛ Свободное общение 7 20.09.2009 09:29