188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
|
|
1 | |
Учебная статья20.05.2011, 14:39. Показов 4319. Ответов 5
Метки нет (Все метки)
В данной статье расматриваються безусловные переходы на delphi и реализации альтернативы в с помощью вставки asm. Я статью выложел на своем будущем сайте... Вобщем вот начало коме интересно заходите может напишу что новенького. Вырезана рекламная ссылка
Сама статья Учебное пособие (Изучаем Ассемблер и Паскаль в сравнении) Введение В данной книге производиться изучение языка ассемблера(встроенный в Delphi 7) и паскаля в сравнении между собой. При этом затрагивается макро ассемблер "MASM 32 Editor Version 10” Данное учебное пособие написанное и рассчитанное на людей вообще незнающий ассемблер, но знающих Delphi (Деэлфай) В языке программирования Delphi нет многих инструкций которые приводиться на самом оригинальном ассемблере. Урок 1 (метки в Delphi и альтернатива на ASM) В текущем уроке рассматриваем метки (в дельфи они называться label). На масме метки тоже есть и они называются JMP но если мы возьмем классический ассемблер в сравнении с встроенным ассемблером в Delphi то мы найдем разницу между ними. Команды переходов всегда начинаются с буквы "j” а дальше к ним подставляться дополнения (О них пока говорить не надо).
0
|
20.05.2011, 14:39 | |
Ответы с готовыми решениями:
5
Учебная ЭВМ (Assembler). Учебная задача, как сделать?! учебная модель Эвм. АССЕМБЛЕР Учебная ЭВМ. Минимальное число |
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
|
|||||||||||
20.05.2011, 20:28 [ТС] | 2 | ||||||||||
Учебное пособие (Изучаем Ассемблер и Паскаль в сравнении)
Введение В данной книге производиться изучение языка ассемблера(встроенный в Delphi 7) и паскаля в сравнении между собой. При этом затрагивается макро ассемблер "MASM 32 Editor Version 10” Данное учебное пособие написанное и рассчитанное на людей вообще незнающий ассемблер, но знающих Delphi (Деэлфай) В языке программирования Delphi нет многих инструкций которые приводиться на самом оригинальном ассемблере. Урок 1 В текущем уроке рассматриваем метки (в дельфи они называться label). На масме метки тоже есть и они называются JMP но если мы возьмем классический ассемблер в сравнении с встроенным ассемблером в Delphi то мы найдем разницу между ними. Команды переходов всегда начинаются с буквы "j” а дальше к ним подставляться дополнения (О них пока говорить не надо). (метки в Delphi и альтернатива на ASM) Образец кода delphi
0
|
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
|
|||||||||||
20.05.2011, 20:36 [ТС] | 3 | ||||||||||
Условия "IF" на языке assambler Условия на языке Pascal представляют собой всем известную форму: Урок 2 (Расмотрим условия "IF") If A <= 10 Then begin ... Здесь код, который будет выполнен, если условия выполнено ... End else ... Здесь код, который будет выполнен, если условие не выполнено ... На языке низкого уровня таких инструкций нет. Инструкцию if в ассемблере заменяет инструкции (CMP и TEST). Команды между собой отличаються. Будем изучать CMP CMP - Сравнивает положительные и отрицательные значения. Отличие команды TEST заключается - в поразрядном сравнении, но нам это пока не надо.Будет применять как есть – кто хочет подробностей пусть читает другую статью. Рассмотрим ниже пример кода с разветвлением: Тотже код только с помощью вставки asm
Что такое флаги и где их смотреть в Delphi 7? Что бы наблюдать за изменением флагов выполните следующие. Напишите код если он у вас еще не написан и запустите на выполнение в режиме отладки клавишей (F7 или выбрать в меню в delphi Run\trace Into ) откроется окно слева в большом ваш код, т.е. код который сейчас будет, выполняется, а правее там есть флаги найдете флаг CF. И нажимая клавишу F7 ВНИМАТЕЛЬНО СМОТРИТЕ ЗА НИМ КАК ОН ИЗМЕНИТЬ ЗНАЧИТ БУДЕТ ВЫПОЛНЯЕТЬСЯ ИНСТРУКЦИЯ ПЕРЕХОДА. Изменения которые были выполнены отмечаються красным цветом. Большая просьба на статью нежаловаться тоже начинающий прог-т в области асм если что пишете нюансы
0
|
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
20.05.2011, 21:16 | 4 |
Может я ошибаюсь, я почти не помню паскаль, но код на паскале и на ассемблере не аналогичны. Код на ассемблере реализует цикл типа do while, на паскале условие проверится один раз и x не изменится.
не верно. Выполнится переход если CF=1
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||||||||||||
21.05.2011, 09:28 | 6 | |||||||||||||||
интересная весчь
начинающие после этого будут боятся ассемблера как черт ладана. для начала не эквивалентны флаги попутаны (Ну про это уже написали) идем дальше какие такие положительные и отрицательные значения??? разница для знаковых и беззнаковых в командах перехода как работает (сравнивает) CMP не написано а это просто вычитание одного числа из другого без запоминания результата (но флаги выставляются) почему не расписаны флаги(кто за что отвечает,как устанавливаются)? в частности это флаг переполнения разрядной сетки выставится если два больших числа сложить или вычесть большое число из малого ZF флаг нуля выставляется если в аккумуляторе 0(при действии арифметических и логических команд)
правильный аналог
аналог будет
ибо их там до проха безусловный переход условные переходы если 0 (если равно) если не 0 (если не равно) если больше если не больше если больше или равно исли меньше если не меньше если меньше или равно причем для знаковых и без знаковых они разные
0
|
21.05.2011, 09:28 | |
21.05.2011, 09:28 | |
Помогаю со студенческими работами здесь
6
Учебная ЭВМ. Минимальное положительное число Учебная программа с защитой от копирования, статического и динамического исследования Программа с использованием подпрограммы. Учебная модель ЭВМ Жмакина Найти номер минимального числа (учебная модель ЭВМ Жмакина) [Статья] Создаем VST эффект на ассемблере Учебная статья - основы работы с реестром в C# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |