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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2009, 02:55   #1
Sairaks
Новичок
Джуниор
 
Регистрация: 13.11.2009
Сообщений: 2
По умолчанию Выборка массива по битовой сетке

Дана "битовая сетка" в виде 4-ричного слова. например:
setka dq 11111111111111111111111111110000000 11111111111111111111000111111b
и дана строка любых символов например.
stroka db 'asdasf.n,1ASFHgsadg3464ujrwGj34674 bfxzdfgdSGSHFDHnvbmghkjghjflgf'
Написать программу на asme на выходе должна быть строка, которая построена на основании битовой сетки то есть если в битовой сетке 0 то это символ не обрабатывать. если 1 обрабатывать и вывести. желательно через функцию TEST

Последний раз редактировалось Sairaks; 13.11.2009 в 02:58.
Sairaks вне форума Ответить с цитированием
Старый 13.11.2009, 09:51   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

в чем именно проблема, проверять маску по кольцу и пробегать строку, если нет своих наработок, помогу платно
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 17.11.2009, 18:23   #3
Sairaks
Новичок
Джуниор
 
Регистрация: 13.11.2009
Сообщений: 2
По умолчанию

Откуда у бедного студента деньги? непонятно как обрабатывать четверичное слово. есть наработки но если битовая сетка задается строкой. а надо именно цифрой бинарной.
Код:
data segment word public 'data'
	nstroka 	db '1234567890,.!?[]{}()AABCDEFGHIJKLMNOPKRSTUVWXYZabcdefghijklmnopk','$'
	str_len	equ	$-nstroka
	mas		db 64 dup(' '),'$'
	bitset		db '1010100010011100011011110100000111101011101010100101011111011111','$'
        adr_bs       dd bitset
data ends

text segment word public 'code'
	assume CS: text, DS: data, SS: stk
start:
;#######################################
	mov 	AX,data
	mov	DS,AX
;#######################################
	mov	CX,str_len
	LES   DI,adr_bs
	
sort:
	mov	AL,'1'
	scasb			       
	jne	mtksort1
	je	mtksort2
mtksort2:
	mov	DH,nstroka[BX]
	mov	mas[SI],DH
	inc	SI
    	           
mtksort1:
	inc	BX
	loop	sort
	
;#######################################
это пример работы со строками

Последний раз редактировалось Sairaks; 17.11.2009 в 18:30.
Sairaks вне форума Ответить с цитированием
Старый 17.11.2009, 19:36   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Что если использовать команду shl ?
Т.е. сдвигать в каждом цикле число на 1 бит влево. Если в крайнем бите была 1, то установиться флаг CF. И дольше работать исходя из его значения.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка битовой строки Svistaplas48 Помощь студентам 2 30.09.2009 18:14
Случайна выборка из массива spectralw Помощь студентам 0 01.05.2009 21:03
выборка и сравнение из массива Dennikid Общие вопросы Delphi 15 03.10.2008 09:25
TListView (привязка значков к сетке) Fireleo Общие вопросы Delphi 2 04.08.2008 14:52