понедельник, 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, они позволяют  не обращать внимание на взаимодействие с ОС.








Задачи:

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 и проверить результат с помощью операций умножения и вычитания

Комментариев нет:

Отправить комментарий