Категория > Новости > Погружение в ассемблер. Осваиваем арифметические инструкции - «Новости»

Погружение в ассемблер. Осваиваем арифметические инструкции - «Новости»


8-07-2020, 12:41. Автор: Эмилия
Прочитав эту статью, ты научишься пользоваться арифметическими и логическими инструкциями, а также инструкциями сдвига. Попутно узнаешь, как создавать подпрограммы. А в конце напишешь простенькую игрушку «Угадай число».

Предыдущие статьи



  • Погружение в assembler

  • Делаем первые шаги в освоении асма

Большинство тех инструкций, о которых ты узнаешь из этой статьи, принимают на входе два аргумента. Каждый отдельно взятый аргумент — это либо регистр, либо память, либо константа. Почти все их сочетания допустимы: регистр-регистр, регистр-память, память-регистр, регистр-константа, память-константа. Единственное недопустимое сочетание — память-память.



Регистры могут быть 16- или 8-битными. 16-битные регистры: AX, BX, CX, DX, SI, DI, BP Рё SP. 8-битные регистры: AH, AL, BH, BL, CH, CL, DH Рё DL.


Пишем вспомогательную подпрограмму



У всех программ, которые мы с тобой сейчас напишем, есть повторяющееся действие: вывести результат на экран. Чтобы не писать код для этого действия каждый раз заново, давай напишем для него подпрограмму.



Что такое подпрограмма? Это кусок кода, который выполняет какую-то небольшую задачу. К подпрограмме обычно обращаются через инструкцию call. Р’СЃРµ подпрограммы заканчиваются инструкцией ret (RETurn).



Пока это все, что тебе нужно знать о подпрограммах. Конечно, по-хорошему, когда пользуешься подпрограммами, надо бы понимать еще несколько вещей, в частности что такое указатель стека и как он меняется при обращении к подпрограмме. Но пока, в рамках текущего урока, давай просто условимся, что если тебе надо нарисовать на экране букву, просто вставляй в свой код вот такую инструкцию.





Реализация подпрограммы call display_letter представлена ниже. Сохрани ее РІ файл library.asm.





Важно! В конец всех программ, которые мы напишем, тебе надо будет вставлять код из library.asm. Рљ чему это приведет? Р’СЃРµ программы Р±СѓРґСѓС‚ заканчиваться выходом РІ командную строку, Рё Сѓ РЅРёС… Р±СѓРґСѓС‚ подпрограммы для вывода символа РЅР° экран (РёР· регистра AL) и для считывания символа с клавиатуры (результат помещается в регистр AL).



 

Учимся складывать и вычитать



Р’ качестве аргументов для инструкции сложения давай задействуем регистр AL и константу.





Эта программа выводит на экран цифру 7. Потому что 4 + 3 = 7.



В качестве аргументов для инструкции вычитания давай возьмем регистр AL Рё константу.





Эта программа выводит РЅР° экран цифру 1. Потому что 4 – 3 = 1.



Перейти обратно к новости