четверг, 26 декабря 2013 г.

Зачет по учебному курсу

Уважаемые студенты!  Для получения зачета нужно:
  • Сдать индивидуальную задачу на циклы (С++)
  • Сдать индивидуальную задачу на массивы и строки (С++)
  • Сдать индивидуальную задачу на функции (С++)
  • Опубликовать на странице задачу на Java (см. условия на странице), которую до вас еще никто не публиковал (Java)
  • Сдать очно 2 простые задачи на ассемблере (ответив на вопросы по используемым командам) -см. задачи здесь. Обратите внимание, сейчас эти задачи общие, а после нового года станут индивидуальными.
Не разделите печальной судьбы Антошки:

понедельник, 23 декабря 2013 г.

Работа с компилятором MASM32

Желающим дальше продвигаться в изучении ассемблера нужно перейти к работе с компилятором MASM32 фирмы Microsoft, который можно скачать бесплатно

Необходимо помнить:
  • у программы на ассемблере есть жесткая структура: блок общих настроек, подключения библиотек, описания данных и т.д., см. примеры в папке masm32/bin/tutorial установленного на вашем компьютере ассемблера. Для начала копируйте эту структуру программы.
  • в ассемблере очень часто используются подпрограммы (нужно разобраться с оформлением, передачей данных)
  • в ассемблере безобразный ввод-вывод, с которым нужно также отдельно разбираться
  • чтобы отлаживать серьезные программы, нужно работать с отладчиком. Он сможет продемонстрировать покомандное выполнение программы, содержимое регистров. За простоту и интуитивную понятность хвалят отладчик ollydbg, который можно скачать бесплатно.

Некоторые пояснения работы с компилятором   MASM32 можно найти на рисунке:


пятница, 20 декабря 2013 г.

Решаем задачки на ассемблере

Задачи:
  1. Задать переменной а значение 12. Переместить ее значение в регистр EАX. Поместить в регистр EDX значение -а. Поменять местами значения регистров EАX и EDX. Выгрузить содержимое регистра EАX в пераменную а, содержимое регистра EDX в пераменную d. Распечатать значения переменных  a, d
  2. a=104, b=21, c=15. Найти значения a+b, a-b,  c-(a+b), 2*c+a-b (операцию умножения не используйте)
  3. Умножить 50000*(-100) с помощью команды imul  с тремя, двумя, одним операндом
  4. Найти значение выражения  (2*a-b)*(7+3*a*b), a=104, b=221, затем a=104h, b=221h в шестнадцатиричной системе, а затем получите тот же результат, выразив a,b в двоичной системе.
  5. Найти результат и остаток от деления 697:13 и проверить результат с помощью операций умножения, сложения  и вычитания
  6. Найти значение с: если  (a > 0 и| b > 0) c=a*b , иначе c=a+b;
  7. Найти значение с: если (2*a+b>b-a или b>a), то  c=a div b , иначе с=b mod a
  8. Найти сумму  натуральных чисел от 1 до 20 используя только переходы и с помощью команды управления циклом
  9. Найти наибольшее целое число без знака, квадрат которого занимает в памяти меньше 2 байт

Маленькая таблица команд ассемблера

Сводка арифметических команд, команд перехода и циклов. Сводка неполная, не описывает всех особенностей команд, не указано изменение флагов. Смотрите подробности в справочнике (например, здесь).


понедельник, 16 декабря 2013 г.

Осваиваем ассемблер _ 1

Ассемблер для процессоров 80х86 Intel

Литературы - масса, например:
Список ресурсов для изучения Ассемблера http://habrahabr.ru/post/131971/
и еще
  • http://natalia.appmat.ru/c&c++/assembler.html
  • http://www.insidepro.com/kk/144r.shtml
  • http://lib.znate.ru/docs/index-56712.html
  • http://cs.mipt.ru/fileadmin/assembler/severov/2013/ начиная с http://cs.mipt.ru/fileadmin/assembler/severov/2013/05-mashinnyi___uroven_2.pdf
  • http://www.dialektika.com/PDF/978-5-8459-1197-1/part.pdf

Но лекции - лучше!

Изучаем примеры и решаем задачи: 
Осваиваем команды пересылки MOV, обмена XCHG, сложения и вычитания, умножения, деления.

Сначала используем ассемблерные вставки в Visual Studio, они позволяют  не обращать внимание на взаимодействие с ОС.


Полный сбор 17 декабря!!!

Java: Подводим итоги первых шагов на странице Java: покоренные вершины

17 декабря начинаем 3-й этап: знакомство с ассемблером.
Всё очень сложно и необычно. Не пропускать!

    lea EDX,b     
    mov a1,11h
    inc [EDX]
    mov eax,[EDX]
    add eax,a1
    mov c,eax

понедельник, 9 декабря 2013 г.

Установка плагина для отправки задач

  снача прочтите  Решаем задачи на Java

Установка плагина для отправки задач из idealU-12.1.6 на сайт JavaRush


  •  Скачать плагин в п.Настройка (кнопка внизу на страниуе JavaRush) и распаковать папки:
  • Папку JavaRushHomeWork в c:/Documents and Settings/User/IdeaProjects
  • Папку JavaRushIdeaPlugin в c:/Program Files/JatBrains/IntelIdealU-12.1.6/Plugins
  • Запустить IntelIdealU-12.1.6, закрыть предыдущий проект (File/Close Project), в открывшемся меню выбрать пункт Open Project и в списке выбрать JavaRushHomeWork. Если в списке проектов c:/Documents and Settings/User/IdeaProjects его нет, нажать на минус в квадратике около названия папки (список проектов свернется), а затем на плюсик там же (список развернется снова и JavaRushHomeWork там будет).
  •   Проект откроется. Необходимо запустить плагин. Для этого нажимаешь Ctrl+Alt+S, справа внизу нажимаешь кнопку «Install plugin from disk» , выбираешь файл "JavaRushIdeaPlugin/lib/IdeaPlugin.jar". Вверху на панели инструментов появятся две кнопки (далее они называются левая и правая!). 


  • Нажимаешь на левую кнопку,  выводится список доступных задач. Выбираешь, нажимаешь ОК.
  •  Пишешь программу. Чтобы ее запустить, созданный класс Solution.java нужно сделать главным. Вверху на ярлычке с именем Solution.java щелкаешь правой и выбираешь Create Mainclass.main(). Становится активным зеленый треугольник  –запуск. Отлаживаешь программу.
  •  Щелкаешь на тексте отлаженной программы и нажимаешь на правую кнопку
  •  Система сообщает, что программа прошла (не прошла) тестирование.

Решаем задачи на Java


 
В начале 3-его уровня уже назревает необходимость решать задачи, используя среду для разработки программ на своем компьютере. Процесс установки и освоения необходимого программного обеспечения описан ниже:

Программное обеспечение. Нужно скачать и установить:


Процесс решения задачи
  • Создать проект  на Java
  • Скачать с сайта JavaRush и установить плагин для отправки задач из idealU-12.1.6 на сайт 
  • Выбрать задачу, написать и отладить программу на  Java
  • Программу послать на сайт и дождаться подтверждения ее успешности.


 Подробности ниже..

понедельник, 2 декабря 2013 г.

Делимся первыми впечатлениями

Надеюсь, обучение Java в полном разгаре!


Вы уже в курсе, что заправить корабль можно в профиле (кнопка внизу страницы)? Но для этого нужен запас темной энергии, который пополняется при выполнении заданий.

С 3 уровня нужно установить дополнительный пакет Java jdk-7u45 и среду для разработки программ  idealU-12.1.6 (о ее настройке и запуске программ -позже).

Вопросы задавайте в комментариях внизу. 
Если есть темы для обсуждения или просто дома обучение не пошло - приходите во вторник и четверг в обычное время.