14.12.2011, 23:36 | #1 (permalink) |
Новичок
Регистрация: 13.12.2011
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ассемблер
Срочно......... 607456848 добавляйтесь |
14.12.2011, 23:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме часто создаются аналогичные темы Проверка дискриминанта через ассемблер Ассемблер. Срочно нужна помощь Ассемблер подгружаемый в паскаль Кто изучал ассемблер, дайте хорошую книжку для новичков. Ассемблер Ассемблер - контроллер прерываний |
15.12.2011, 18:18 | #4 (permalink) |
Новичок
Регистрация: 13.12.2011
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Порядок выполнения работы
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. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|