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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2008, 15:11   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию Сбросить 3,5,7 биты

Задали задачку...помогите!
Определить байт в сегменте данных, переписать его в регистр, сбросить 4, 6 биты, проинвентировать, сложить по модулю 2 с любой маской, проверить взеден ли 2 бит, выдать сообщение-взведен или не взведен.
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 19.05.2008, 15:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Показывай как делаешь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2008, 15:24   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

veter_s_morya, задача элементарная и может быть решена кучей способов, от AND/TEST/OR/XOR, до BT(BTR/BTS/BTC) показывайте, что не выходит.
B_N вне форума Ответить с цитированием
Старый 19.05.2008, 15:44   #4
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Учтите первый раз в жизни пишу программу на ассемблере!

Код:
STACKSG SEGMENT  PARA STACK 'Stack'
        DW       32 DUP(?)  //резервирую 2 слова
STACKSG ENDS
DATASG  SEGMENT  PARA 'Data'
al 8  //по 1 байту
bl 8
DATASG ends
CODESG  SEGMENT PARA 'Code'
ASSUME  CS:CODESG,DS:DATASG

SUB  al,al   //очищаю
SUB  ax,ax  //очищаю
SUB  bl,bl   //очищаю
SUB  bx,bx  //очищаю
mov al, 11101011b
mov ax,al
mov bl, 00111110b
mov bx,bl
not ax,bx  //тут не знаю not или and
mov 
mov ah, 4ch
int 21h 
CODESG  ENDS
Я еще теорию читаю, а тут практика уже на пятки наступает. Подскажите, а я пока дальше дорабатывать буду.
------------------------------
Ум без разума –это беда!

Последний раз редактировалось veter_s_morya; 19.05.2008 в 15:50.
veter_s_morya вне форума Ответить с цитированием
Старый 19.05.2008, 15:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот в Масме:
Я лично так это представляю
Код:
    
   mov ax,245 ; втюхивает число
    xor bx,bx ;готовим bx для работы
    and ax,10101111b ;Сбрасываем 4 6 биты
    not ax; инвертим
    and ax,00000100b
    .if ax !=0 ; проверяем на 2-й бит
      ; я не помню как в досе на экран выводить.
    .endif
   ret
I'm learning to live...

Последний раз редактировалось Stilet; 19.05.2008 в 15:59.
Stilet вне форума Ответить с цитированием
Старый 19.05.2008, 16:00   #6
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
Вот в Масме:
вообще-то нас гоняют по тасму.
------------------------------
Ум без разума –это беда!

Последний раз редактировалось veter_s_morya; 19.05.2008 в 16:05.
veter_s_morya вне форума Ответить с цитированием
Старый 19.05.2008, 16:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

От проблема то посмотреть как .if кодится?
Код:
    mov ax,245
    xor bx,bx
    and ax,10101111b
    not ax
    and ax,00000100b
    jnz asc
    jmp ex
asc:
    ; я не помню как в досе на экран выводить. 
ex:
   ret
Опа.. Чет метки не отображаются...


...
jmp ex
asc:
; я не помню как в досе на экран выводить.
ex:
ret
I'm learning to live...

Последний раз редактировалось Stilet; 19.05.2008 в 16:34.
Stilet вне форума Ответить с цитированием
Старый 19.05.2008, 17:05   #8
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

я думал, что надо использовать al и ah (младший, старший)...
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 19.05.2008, 17:06   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какая разница?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2008, 08:51   #10
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

вывод
mov ah,09 ;Запрос вывода на экран
int 21h ;Вызов DOS

Я понял, что это стандарт для доса. Так?
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как "сбросить" программу не закрывая её? Janno Общие вопросы Delphi 2 08.04.2007 18:41