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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2015, 00:26   #1
iluxa1810
 
Регистрация: 15.03.2015
Сообщений: 6
По умолчанию Заменить значения в заданном слове

Дано задание:
Цитата:
Заменить в заданном слове комбинации 1011 на комбинации 1101.
Я правильно понимаю, что действие будет происходить в цикле(Что мне взять за количество повторений?) и по следующему алгоритму:
Копирую al в bl
применяю логическую функцию на bl, что бы обнулить старшие разряды
Применяю cmp на bl
если истина, то прибавляю в dx 1101, иначе пишу как есть.
Делаю сдвиг al на 1 разряд.
Возврат в начало цикла ю

Будет вообще замечательно, если кто-нибудь снабдит меня примерами=)
iluxa1810 вне форума Ответить с цитированием
Старый 26.03.2015, 09:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

iluxa1810, задание, на мой взгляд требует уточнения.
ну, во-первых, размер слова стандартный, два байта?
во-вторых, если после замены возникла искомая комбинация, её нужно заменять (думаю, что нет, но, на всякий случай, надо уточнить)
например,
дано 1010101110101011
после первой замены
1010110110101011
после второй замены
1010110110101101
это то, что должно получится?
или в полученном числе нужно заменять комбинации?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2015, 17:35   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Со строкой легче можно обойтись.. Пример на FASM'e:

C:\Temp>reverse.com
Enter string : Hello world!!!
Reverse string: !!!dlrow olleH

Код:
use16
org 100h
jmp start

msg   db 'Enter string  : $'
msg2  db 10,'Reverse string: $'
buf   db 80, 80 DUP (?)

start:
    mov ah,9             ; диалог
    mov dx,msg
    int 21h
 
    inc ah               ; ah = 0Ah (ждём ввода)
    mov dx,buf
    int 21h
 
    dec ah               ; ah = 9h (диалог)
    mov dx,msg2
    int 21h
 
    xor cx,cx            ; сама функция
    mov cl,byte[buf+1]   ; CX = длинна строки
    mov si,buf+1         ; SI = смещение строки
    add si,cx            ; SI = строка + длинна
    std                  ; DF = 1 (флаг направления)
print:
    lodsb                ; считать символ в AL
    int 29h              ; печать
loop print
 
    int 20h              ; на выход!
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 26.03.2015, 23:37   #4
iluxa1810
 
Регистрация: 15.03.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
iluxa1810, задание, на мой взгляд требует уточнения.
ну, во-первых, размер слова стандартный, два байта?
во-вторых, если после замены возникла искомая комбинация, её нужно заменять (думаю, что нет, но, на всякий случай, надо уточнить)
например,
дано 1010101110101011
после первой замены
1010110110101011
после второй замены
1010110110101101
это то, что должно получится?
или в полученном числе нужно заменять комбинации?
Если я правильно понял преподователя, до менять до тех пор, ока в просматриваемой строке не будет этой комбинации.
iluxa1810 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java. нужно заменить в слове буквы на предыдущие согласно англ. алфавиту. что не так? Felicity_ Общие вопросы по Java, Java SE, Kotlin 1 11.12.2013 13:43
найти в имеющемся тексте все слова, в которых использованы только буквы, имеющиеся в заданном слове Леопольдовна Общие вопросы C/C++ 6 03.04.2013 22:33
Надо составить программу, которая в заданном слове удваивает все буквы PicniX Помощь студентам 2 27.12.2012 16:31
Программа подсчета букв,стоящих на четных местах в заданном слове на Паскале PetrAD Помощь студентам 1 13.12.2012 18:42
В слове (16bit) заменить 4-бита Tronix Паскаль, Turbo Pascal, PascalABC.NET 2 26.07.2012 11:31