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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2012, 21:05   #11
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ну так это дизассемблер, а не ассемблер ) конечно у вас это будет имя некой переменной, типа:

Код:
  mov eax, s1
точно так же как:

Код:
jnl $00407185
заменится на переход по метке, а не на конкретную ячейку памяти )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 06.06.2012, 09:45   #12
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

решается просто: в текстовом редакторе проводится замена адресов на имена и всё... а вообще, для этого есть строковые функции ассемблера:

Код:
str1 db 100 dup ("$")
len1 dw 100
str2 db 20  dup ("$")
len2 dw 20
...
push ds
pop es
' длина исходной строки
mov si, offset str1
mov cx,100
mov al, '$'
repne scasb
sub len1, cx
' длина строки для поиска
mov si, offset str2
mov cx,20
mov al, '$'
repne scasb
sub len2, cx
' поиск вхождения
mov si, offset str1
mov al, byte ptr [str2]
mov cx, len1
lp:
repne scasb
jz exit_no

push cx
push si
mov cx, len2
mov di, offset str2
repne cmpsb
jz exit_yes

pop si
pop cx
jmp lp
exit_no:
.... ' выводим "нет"
exit_yes:
pop ax
pop ax
.... 'выводим "да"
з.ы. код не проверял... возможно, потребуется кое-где уменьшить счётчики и сместить индексы)
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 06.06.2012 в 13:33.
DiemonStar вне форума Ответить с цитированием
Старый 06.06.2012, 15:23   #13
.:DEZ:.
Пользователь
 
Регистрация: 03.06.2012
Сообщений: 28
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
ну так это дизассемблер, а не ассемблер ) конечно у вас это будет имя некой переменной, типа:

Код:
  mov eax, s1
точно так же как:

Код:
jnl $00407185
заменится на переход по метке, а не на конкретную ячейку памяти )
Точно, всё понял. Спасибо.
.:DEZ:. вне форума Ответить с цитированием
Старый 06.06.2012, 15:25   #14
.:DEZ:.
Пользователь
 
Регистрация: 03.06.2012
Сообщений: 28
По умолчанию

DiemonStar, спасибо сейчас проверю.

DiemonStar, что обозначают точки: "...."? он на них ругается.

???

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


Код:
jmp entry
lens1 db 60
dlina1 db 0
s1 db 60 dup (0)
lens2 db 60
dlina2 db 0
s2 db 60 dup (0)
p1 db 0
p2 db 0
entry:mov ah,9
mov dx,offset lens1
int 21h
mov ah,9
mov dx,offset lens2
int 21h
mov al,dlina1
mov p1,al
inc p1
mov p2,1
whileconstr:
mov al,p2
cmp al,dlina2
ja vilet
 
dec p1
mov al,1
rerwrerwerw:cmp p1,al
jne vilet1
mov si,offset s1
add si,offset p1
mov di,offset s2
add di,offset p2
mov al,[si]
cmp al,[di]
je vilet1
dec p1
jmp rerwrerwerw
vilet1:
mov al,1
cmp p1,al
jbe vilet
inc p2
jmp whileconstr
vilet:
mov al,1
cmp al,p1
jna els
mov ah,9
mov dx,offset nof
int 21h
jmp endifw
els:
mov ah,9
mov dx,offset fon
int 21h
endifw:
mov ah,10h
int 16h
int 20h
nof db 'Not found$'
fon db 'Found$'

Последний раз редактировалось Stilet; 10.06.2012 в 09:53.
.:DEZ:. вне форума Ответить с цитированием
Старый 08.06.2012, 11:29   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

совершенно недавно здесь на форуме я помогал доработать программку сранения двух строк, вводимых с клавиатуры:

Accembler, сравнение

посмотрите, может Вы там что-то полезное для себя найдёте...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2012, 11:37   #16
.:DEZ:.
Пользователь
 
Регистрация: 03.06.2012
Сообщений: 28
По умолчанию

Спасибо, сейчас посмотрю, а тут можете помочь? задание не много другое.
.:DEZ:. вне форума Ответить с цитированием
Старый 08.06.2012, 16:56   #17
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
DiemonStar, что обозначают точки: "...."? он на них ругается.
Есстественно) там должны быть функции ввода строки и вывод результата. Вы же не надеялись, что я буду весь код писать - всё что написано относится исключительно к реализации вашего алгоритма.

и, кстати, ту меня сравнение строк идёт в прямом направлении, а не в обратном учитывайте такую особенность (перевернуть слово не проблема, да и поиск в обратном направлении реализовать не долго...)
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 08.06.2012 в 16:59.
DiemonStar вне форума Ответить с цитированием
Старый 08.06.2012, 17:41   #18
.:DEZ:.
Пользователь
 
Регистрация: 03.06.2012
Сообщений: 28
По умолчанию

А) понял, спасибо вам большое, сейчас буду делать, потом выложу что получилось)

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
(перевернуть слово не проблема, да и поиск в обратном направлении реализовать не долго...)
можно же ведь просто вместо "repe scasb" написать "std repe scasb" и будет сканировать в обратном направлении? (то есть начинать с конца)

Последний раз редактировалось .:DEZ:.; 08.06.2012 в 17:44.
.:DEZ:. вне форума Ответить с цитированием
Старый 08.06.2012, 20:36   #19
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
можно же ведь просто вместо "repe scasb" написать "std repe scasb" и будет сканировать в обратном направлении? (то есть начинать с конца)
можете попробовать, если очень хочется) можно и так сделать, но вряд-ли будет проще)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 09.06.2012, 09:21   #20
.:DEZ:.
Пользователь
 
Регистрация: 03.06.2012
Сообщений: 28
По умолчанию

Блин( подскажите как организовать сканирование байт с конца( как код будет выглядеть?
.:DEZ:. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из паскаля на СИ Кот Шрёдингера Помощь студентам 0 02.11.2011 20:07
Перевод с Паскаля на С++.... Solnze2 Помощь студентам 0 20.05.2011 23:13
перевод из паскаля в с++ dANIL282 Помощь студентам 2 21.01.2011 00:05
Перевод с Паскаля на С RamilFaz Общие вопросы C/C++ 3 08.04.2010 14:40
Из паскаля в ассемблер Archiserafim Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 16 03.09.2009 22:02