Программирование на языке низкого уровня Ассемблер
Что нужно для работы с ассемблером Ассемблер – это программа, которая переводит текст с языка, понятного человеку, в язык, понятный процессору, т.е. говорят, что она переводит язык ассемблера в машинный код. Для работы с ассемблером будем использовать пакет MASM для Windows, в который входит: TASM – транслятор; LINK – компоновщик; TD – отладчик.
Представление данных в компьютере двоичная система счисления и шестнадцатеричная; перевод; биты, байты, слова; байт Машинное слово Двойное машинное слово - 32 бита (4 байта)
десятичнаядвоичнаяшестнадцатеричная A B C D E F
Регистры общего назначения Аккумулятор Базовый регистр Регистр-счетчик Регистр данных Индекс источника Индекс приемника Указатель стека Указатель базы
В процессорах Intel предусмотрено шесть 16-битных регистров: CS – сегмент кода; DS – сегмент данных; SS – сегмент стека; ES – GS – дополнительные регистры данных FS – Сегментные регистры
Стек - организованный специальным образом участок памяти, который используется для временного хранения переменных, передачи параметров вызываемым подпрограмм и сохранения адреса возврата при вызове процедур и прерываний. Стек располагается в сегменте памяти, описываемом регистром SS, и текущее смещение вершины стека отражено в регистре ESP, причем во время записи значение этого смещения уменьшается, т. е. он «растет вниз». Стек
Регистр флагов 0 NT IOPL OF DFIFTFSFZF 0 AF 0 PF 1 CF CF – флаг переноса; PF – флаг четности; AF – флаг полупереноса; ZF – флаг нуля; SF – флаг знака; TF – флаг ловушки; IF – флаг прерываний; DF – флаг направления; OF – флаг переполнения;