Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Ассемблер
(Модератор:
Tuborg
) > Тема:
доступ к отдельным байтам.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: доступ к отдельным байтам. (Прочитано 9387 раз)
0 Пользователей и 1 Гость смотрят эту тему.
fromtheinside
Гость
доступ к отдельным байтам.
«
:
22-11-2008 19:19 »
Добрый вечер. Ув. специалисты, помогите начинающему. Задача следующая:
Имеем сегмент данных со следующим содержимым: DS:00 12 34 56 ...
Мне нужно записать в регистр, любой, пусть будет АХ значение первого байта, т.е. "1", но когда я выполняю команду mov ax,[0] в регистр АХ помещается все 4 первых байта, т.е. 3412. Мне же надо ТОЛЬКО поместить в регистр первый байт, а все остальные байты должны быть пусты т.е. нули.
Я в данным момент работаю со средой DEBUG поэтому прош объяснять относительно именно этой среды, если конечно можно.
П.С. Не спрашивайте зачем мне это надо =)) я выполняю лабораторную по ассемблеру, это одно из заданий, вернее там задание другое, но чтобы его реализовать нужно выполнить нечто подобное что я у Вас спрашиваю.
Записан
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: доступ к отдельным байтам.
«
Ответ #1 :
22-11-2008 19:26 »
Ну ты запрашиваеш 16 бит, и получаеш их. Вот если бы ты сделал
Код:
xor ax, ax
mov al, [0]
то получил бы в ax = 0012h
Записан
Не будите спашяго дракона.
Джаффар (Коша)
fromtheinside
Гость
Re: доступ к отдельным байтам.
«
Ответ #2 :
22-11-2008 19:38 »
Большое спасибо за помошь Finch ! А нельзя ли сделать чтобы именно "1" получить в Ах ? И если Вам не сложно, пожалуйста прокоментируйте что делает первая команда xor и почему мы пишем mov al, а значения попадают в АХ.
Записан
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: доступ к отдельным байтам.
«
Ответ #3 :
22-11-2008 19:56 »
mov ax, 1 запишет в ax 1
По идее говоря все остальные вопросы это уже учебник. Регистр AX разбивается на 2 восьми разрядных регистра ah и al. Операция xor это булевая операция "Исключаюшая ИЛИ" В таком применении, она просто обнуляет регистр. И в памяти записывается значительно короче, чем mov ax,0
Записан
Не будите спашяго дракона.
Джаффар (Коша)
fromtheinside
Гость
Re: доступ к отдельным байтам.
«
Ответ #4 :
22-11-2008 20:07 »
Спасибо большое, все понял. А какую литературу Вы бы порекомендовали, нас конечно обеспечивают оной, но интересно Ваше мнение!
Записан
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: доступ к отдельным байтам.
«
Ответ #5 :
22-11-2008 20:13 »
Какая сейчас модна, я не знаю. Лет 10 наверно ассемблером не занимался в плотную. В свое время я учился по книге Питера Абеля "Ассемблер IBM PC". Сейчас ее уже наверно не найти.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
fromtheinside
Гость
Re: доступ к отдельным байтам.
«
Ответ #6 :
22-11-2008 20:16 »
Ясно. Как ни странно именно её нам дали в качестве основного учебника )) Но только в электронном виде.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Ассемблер
(Модератор:
Tuborg
) > Тема:
доступ к отдельным байтам.
Загружается...