Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 668
от 28.01.2007, 03:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 368, Экспертов: 33
В номере:Вопросов: 1, Ответов: 3


Вопрос № 72117: Здравствуйте. Ответьте ожалуйста вот на такой вопрос. Предположим что регистр DX содержит 1011100110111001, а регистр CL - 03. Определить содержимое регистра DX после следующих команд. 1. SHR DX,1 2. SHR DX,CL 3. SHL DX,CL 4....

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

Предположим что регистр 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.

Зарание благодарю!!!
Отправлен: 22.01.2007, 17:13
Вопрос задал: Александр Логвиненко (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

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

1011100110111001

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

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

shl ax, 1
rcl dx, 1

и т.д.

удачи!

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 22.01.2007, 17:30

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

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

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

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

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
остальное в приложении

Приложение:

Ответ отправил: Зенченко Константин Николаевич (статус: 1-ый класс)
Ответ отправлен: 25.01.2007, 11:00


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное