четверг, 23 января 2014 г.
четверг, 26 декабря 2013 г.
Зачет по учебному курсу
Уважаемые студенты! Для получения зачета нужно:
- Сдать индивидуальную задачу на циклы (С++)
- Сдать индивидуальную задачу на массивы и строки (С++)
- Сдать индивидуальную задачу на функции (С++)
- Опубликовать на странице задачу на Java (см. условия на странице), которую до вас еще никто не публиковал (Java)
- Сдать очно 2 простые задачи на ассемблере (ответив на вопросы по используемым командам) -см. задачи здесь. Обратите внимание, сейчас эти задачи общие, а после нового года станут индивидуальными.
Не разделите печальной судьбы Антошки:
понедельник, 23 декабря 2013 г.
Работа с компилятором MASM32
Желающим дальше продвигаться в изучении ассемблера нужно перейти к работе с компилятором MASM32 фирмы Microsoft, который можно скачать бесплатно.
Необходимо помнить:
Некоторые пояснения работы с компилятором MASM32 можно найти на рисунке:
Необходимо помнить:
- у программы на ассемблере есть жесткая структура: блок общих настроек, подключения библиотек, описания данных и т.д., см. примеры в папке masm32/bin/tutorial установленного на вашем компьютере ассемблера. Для начала копируйте эту структуру программы.
- в ассемблере очень часто используются подпрограммы (нужно разобраться с оформлением, передачей данных)
- в ассемблере безобразный ввод-вывод, с которым нужно также отдельно разбираться
- чтобы отлаживать серьезные программы, нужно работать с отладчиком. Он сможет продемонстрировать покомандное выполнение программы, содержимое регистров. За простоту и интуитивную понятность хвалят отладчик ollydbg, который можно скачать бесплатно.
Некоторые пояснения работы с компилятором MASM32 можно найти на рисунке:
пятница, 20 декабря 2013 г.
Решаем задачки на ассемблере
Задачи:
- Задать переменной а значение 12. Переместить ее значение в регистр EАX. Поместить в регистр EDX значение -а. Поменять местами значения регистров EАX и EDX. Выгрузить содержимое регистра EАX в пераменную а, содержимое регистра EDX в пераменную d. Распечатать значения переменных a, d
- a=104, b=21, c=15. Найти значения a+b, a-b, c-(a+b), 2*c+a-b (операцию умножения не используйте)
- Умножить 50000*(-100) с помощью команды imul с тремя, двумя, одним операндом
- Найти значение выражения (2*a-b)*(7+3*a*b), a=104, b=221, затем a=104h, b=221h в шестнадцатиричной системе, а затем получите тот же результат, выразив a,b в двоичной системе.
- Найти результат и остаток от деления 697:13 и проверить результат с помощью операций умножения, сложения и вычитания
- Найти значение с: если (a > 0 и| b > 0) c=a*b , иначе c=a+b;
- Найти значение с: если (2*a+b>b-a или b>a), то c=a div b , иначе с=b mod a
- Найти сумму натуральных чисел от 1 до 20 используя только переходы и с помощью команды управления циклом
- Найти наибольшее целое число без знака, квадрат которого занимает в памяти меньше 2 байт
Маленькая таблица команд ассемблера
Сводка арифметических команд, команд перехода и циклов. Сводка неполная, не описывает всех особенностей команд, не указано изменение флагов. Смотрите подробности в справочнике (например, здесь).
понедельник, 16 декабря 2013 г.
Осваиваем ассемблер _ 1
Ассемблер для процессоров 80х86 Intel
Литературы - масса, например:
Список ресурсов для изучения Ассемблера http://habrahabr.ru/post/131971/
и еще
Но лекции - лучше!
Изучаем примеры и решаем задачи:
Осваиваем команды пересылки MOV, обмена XCHG, сложения и вычитания, умножения, деления.
Сначала используем ассемблерные вставки в Visual Studio, они позволяют не обращать внимание на взаимодействие с ОС.
Литературы - масса, например:
Список ресурсов для изучения Ассемблера 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
17 декабря начинаем 3-й этап: знакомство с ассемблером.
Всё очень сложно и необычно. Не пропускать!
lea EDX,b
mov a1,11h
inc [EDX]
mov eax,[EDX]
add eax,a1
mov c,eax
Подписаться на:
Сообщения (Atom)
