• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Ассемблер

Ирина1993

Ученик
Регистрация
13 Дек 2011
Сообщения
8
Реакции
0
Баллы
0
Ассемблер

Помогите сдалать задания на ассемблере!!
Срочно.........
607456848
добавляйтесь
 
помощь в решении задачи на ассемблере
 
320289366

а для какого процессора? какое залдагие?
 
Порядок выполнения работы

1. Повторить шестнадцатиричную систему счисления.
2. Изучить структуру программы на Ассемблере.
3. Изучить команды отладчика DEBUG.
4. Внимательно ознакомиться с порядком выполнения работы.
5. Разобраться в представленной ниже программе, записывающей исходные данные типа байт из области source в обратном порядке в область dest.



6. Скопировать программу PRIMER.ASM под другим именем.
7. В любом редакторе исправить программу, вводя исходные данные своего варианта. В первой программе тип данных - байт.
8. Оттранслировать исходный модуль. Для этого набрать команду:
>masm {имя файла},
где {имя файла} - имя файла, содержащего исходный модуль, без расширения. На запросы ответить так:
object filename[ ]: нажать клавишу перевода строки
source listing[ ]: набрать имя файла без расширения
cross reference[ ]: нажать клавишу перевода строки
В результате создается объектный файл и листинг трансляции.
9. Просмотр листинга трансляции. Для этого вызвать на экран файл с расширением LST клавишей F3. Листинг состоит из двух частей. В левой части находится столбец шестнадцатиричных значений смещения адреса (в байтах) от начала сегмента и столбцы объектного кода каждого оператора. В правой части - текст исходной программы.
Особое внимание обратить на смещение оператора RET.
10. Создать исполняемый файл. Для ввода загрузчика ввести команду:
>link {имя файла}
На все запросы нажимать клавишу перевода строки.
В результате создается исполняемый файл с расширением EXE.
11. Выполнить программу. Для этого используется отладчик DEBUG. Для начала ввести команду:
>debug {имя файла}.exe
Просмотреть содержимое регистров. Сделать 5-6 шагов. Выполнить программу до конца, используя смещение команды RET.
12. Проверить правильность работы программы. Просмотреть содержимое сегмента данных.
13. Просмотреть содержимое сегмента команд.
14. Выйти из отладчика.
15. Внести изменения в программу, поменяв тип исходных данных на слово. Повторить пункты 8-14.
16. Внести изменения в программу, поменяв тип исходных данных на двойное слово. Повторить пункты 8-14.
17. Оформить отчет.

Содержание отчета

Отчет должен включать для трех программ:
1. Текст листинга трансляции (2 страницы).
2. Содержимое регистров после команд отладчика R и T.
3. Содержимое сегмента данных и сегмента команд.
. Исследование формирования регистра флагов

Цель и задачи исследования

Целью и задачей работы является приобретение навыков установки и сбрасывания флагов.

Теоретические сведения
Флаги [6, 7]
В 16-ти битовом регистре флагов фиксируется информация о текущем состоянии дел:
0 бит – флаг переноса
2 бит – флаг четности
4 бит – флаг вспомогательного переноса
6 бит – флаг нуля
7 бит – флаг знака
8 бит – флаг тpассиpовки
9 бит – флаг разрешения прерываний
10 бит – флаг направления
11 бит – флаг переполнения
С помощью команды LAHF (Load AH from Flags – загрузить регистр AH флагами) можно сохранить флаги CF,PF,AF,ZF,SF в соответствующих битах регистра AH (0,2,4,6,7).

Команды сложения
ADD приемник, источник (add-сложить)
ADC приемник, источник (add with carry - сложить с переносом)

Команды могут складывать как 8- , так и 16-битовые операнды.
Если при выполнении сложения ADD используются 8-битовые регистры, то 8 младших битов ответа будут занесены в регистр приемника, а 9-й бит (если он есть) - во флаг переноса CF, например

Команда ADD AX,BX складывает 16-битовые значения регистров AX,BX.
Команды
ADD AX,CX
ADC BX,DX
складывают 32-битовое число, находящееся в регистрах CX, DX с 32 -битовым числом, находящимся в регистрах AX и BX .

Команда сравнения CMP (compare)

Команда СМР вычитает операнд-источник из операнда-приемника, устанавливает флаги (см. табл.), но не сохраняет результат вычитания.
Таблица - Результаты исполнения команды СМР
условие SF ZF CF
приемник > источник 0 0 0
приемник = источник 0 1 0
приемник < источник 1 0 1

Оборудование

IBM совместимые ЭВМ, операционная система Linux, программа DOSBox, оболочка Volcov Commander, программы Masm, Link, Debug.

Порядок выполнения работы
1. Повторить команды сложения (ADD и ADC), сравнения (CMP) и сохранения флагов (LAHF).
2. Составить программу, состоящую из трех частей. В первой части сложить первое и второе числа из последовательности входных данных в соответствии с вариантом и посмотреть состояние флагов. Во второй части сравнить 2 и 3, 2 и 4, 3 и 4 числа из последовательности и также посмотреть состояния флагов после каждого сравнения. Тип данных и используемые регистры выбрать самостоятельно, обосновав выбор:
№ варианта Входные данные
1 240, 40, 32, 40
2 -600, 20, 10, 20
3 31100, 2010, 50, 2010
4 3015, 105, 100, 105
5 250, -40, 5, -40
6 60000, 6000, 20, 6000
7 -100, 50, 100, 50
8 200, 70, 150, 70
9 2000, 150, 200, 150
10 100, 180, 200, 180

3. Набрать программу.
4. Откомпилировать и отладить программу.
5. Оформить отчет.
Содержание отчета
Отчет должен содержать:
1. Вариант задания.
2. Текст программы.
3. Содержание регистров после выполнения операции сложения и результат сложения в шестнадцатиричном, двоичном и десятичном виде.
4. Содержание регистра АН в шестнадцатиричном и двоичном виде и состояние флагов после каждого выполнения команды LAHF.
. Исследование формирования регистра флагов

Цель и задачи исследования

Целью и задачей работы является приобретение навыков установки и сбрасывания флагов.

Теоретические сведения
Флаги [6, 7]
В 16-ти битовом регистре флагов фиксируется информация о текущем состоянии дел:
0 бит – флаг переноса
2 бит – флаг четности
4 бит – флаг вспомогательного переноса
6 бит – флаг нуля
7 бит – флаг знака
8 бит – флаг тpассиpовки
9 бит – флаг разрешения прерываний
10 бит – флаг направления
11 бит – флаг переполнения
С помощью команды LAHF (Load AH from Flags – загрузить регистр AH флагами) можно сохранить флаги CF,PF,AF,ZF,SF в соответствующих битах регистра AH (0,2,4,6,7).

Команды сложения
ADD приемник, источник (add-сложить)
ADC приемник, источник (add with carry - сложить с переносом)

Команды могут складывать как 8- , так и 16-битовые операнды.
Если при выполнении сложения ADD используются 8-битовые регистры, то 8 младших битов ответа будут занесены в регистр приемника, а 9-й бит (если он есть) - во флаг переноса CF, например

Команда ADD AX,BX складывает 16-битовые значения регистров AX,BX.
Команды
ADD AX,CX
ADC BX,DX
складывают 32-битовое число, находящееся в регистрах CX, DX с 32 -битовым числом, находящимся в регистрах AX и BX .

Команда сравнения CMP (compare)

Команда СМР вычитает операнд-источник из операнда-приемника, устанавливает флаги (см. табл.), но не сохраняет результат вычитания.
Таблица - Результаты исполнения команды СМР
условие SF ZF CF
приемник > источник 0 0 0
приемник = источник 0 1 0
приемник < источник 1 0 1

Оборудование

IBM совместимые ЭВМ, операционная система Linux, программа DOSBox, оболочка Volcov Commander, программы Masm, Link, Debug.

Порядок выполнения работы
1. Повторить команды сложения (ADD и ADC), сравнения (CMP) и сохранения флагов (LAHF).
2. Составить программу, состоящую из трех частей. В первой части сложить первое и второе числа из последовательности входных данных в соответствии с вариантом и посмотреть состояние флагов. Во второй части сравнить 2 и 3, 2 и 4, 3 и 4 числа из последовательности и также посмотреть состояния флагов после каждого сравнения. Тип данных и используемые регистры выбрать самостоятельно, обосновав выбор:
№ варианта Входные данные
1 240, 40, 32, 40
2 -600, 20, 10, 20
3 31100, 2010, 50, 2010
4 3015, 105, 100, 105
5 250, -40, 5, -40
6 60000, 6000, 20, 6000
7 -100, 50, 100, 50
8 200, 70, 150, 70
9 2000, 150, 200, 150
10 100, 180, 200, 180

3. Набрать программу.
4. Откомпилировать и отладить программу.
5. Оформить отчет.
Содержание отчета
Отчет должен содержать:
1. Вариант задания.
2. Текст программы.
3. Содержание регистров после выполнения операции сложения и результат сложения в шестнадцатиричном, двоичном и десятичном виде.
4. Содержание регистра АН в шестнадцатиричном и двоичном виде и состояние флагов после каждого выполнения команды LAHF.
 
Назад
Сверху