30.09.2020, 05:39 [+3 UTC]
в нашей команде: 4 745 чел. | участники онлайн: 0 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.90 (14.08.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
29.09.2020, 17:36

Последний вопрос:
30.09.2020, 02:27
Всего: 152937

Последний ответ:
29.09.2020, 01:46
Всего: 260441

Последняя рассылка:
29.09.2020, 09:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
13.02.2019, 13:20 »
dar777
Это самое лучшее решение! [вопрос № 194682, ответ № 277462]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 390
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 161
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 72117
Раздел: • Assembler
Автор вопроса: Александр Логвиненко
Отправлена: 22.01.2007, 17:13
Поступило ответов: 3

Здравствуйте. Ответьте ожалуйста вот на такой вопрос.

Предположим что регистр DX содержит 1011100110111001, а регистр CL - 03. Определить содержимое регистра DX после следующих команд.
1. SHR DX,1
2. SHR DX,CL
3. SHL DX,CL
4. SHL DL,1
5. ROR DX,CL
6. ROR DL,CL
7. SAL DH,1
И ещё такие вопросы

1)Используя команды сдвига, пересылки и сложения, умножить содержимое регистра AX на 10
2) Напишите программу, которая умножает содержимое пары регистров DX:AX на 2. Измениет программу для: 1. Умножения на 4, 2. Деления на 4, 3. умножение 48 бит в регистрах DX:AX:BX на 2.

Зарание благодарю!!!

Состояние: Консультация закрыта

Ответ # 138331 от Евгений Иванов

Здравствуйте, Александр Логвиненко!

1011100110111001

1. 0101110011011100
2. 0000101110011011
3. 0101110011011000
4. 0101110010110000
5. 0000101110010110
6. 0000101111010010
7. 0001011011010010

AX можно умножить на 10, если умножить сначала на 8, потом прибавить два оригинала.

shl ax, 1
rcl dx, 1

и т.д.

удачи!


Консультировал: Евгений Иванов
Дата отправки: 22.01.2007, 17:30

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 138411 от Стас

Здравствуйте, Александр Логвиненко!

Вообще-то неплохо было бы самому решить задачки...

DX=16D2 (кстати SHR и SAL одна и таже команда)

1) для уножение на 10 умножаем исходноечисло на 2 запоминаем, умножаем исходноечисло на 8, складываем с запомненым (x*10=x*8+x*2), *2 смотри ниже:
SHL AX,1 ; AX*2
MOV BX,AX ;запомним

SHL AX,1 ;(AX уже умножено на 2) умножим еще на 2
SHL AX,1 ;(AX уже умножено на 4) умножим еще на 2 = AX*8
ADD AX,BX ;AX*10 = (BX=(AX*2)) + AX*8

2) для умножение на 2 нужно сдвинуть регистр влево на 1 бит например командой SHR, старший бит уйдет в CF, чтобы его не потерять сдвинем второй регистр командой RCL:
SHL AX,1; RCL DX,1 = DX:AX*2
соответсвенно два раза:SHL AX,1; RCL DX,1; SHL AX,1; RCL DX,1 = DX:AX*4
Деление - сдвиг вправо: SHR DX,1; RCR AX,1 = DX:AX/2
Ну и отсюда следует:
SHL BX,1; RCL AX,1; RCL DX,1 = DX:AX:BX*2


Консультировал: Стас
Дата отправки: 23.01.2007, 03:38

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Александр Логвиненко!

1. SHR DX,1 0101.1100.1101.1100
2. SHR DX,CL 0001.0111.0011.0111
3. SHL DX,CL 1100.1101.1100.1000
4. SHL DL,1 1011.1011.0111.0010
5. ROR DX,CL 0011.0111.0011.0111
6. ROR DL,CL 1011.1001.0011.0111
7. SAL DH,1 0111.0011.1011.1001
остальное в приложении

Приложение:


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 25.01.2007, 11:00

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16449 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.90 от 14.08.2020
Версия JS: 1.45 | Версия CSS: 3.39