SEOSERVISE - Защита информации.

 
   
 

Главная


 


Digital . Язык ассемблера позволяет программисту взаимодействовать с аппаратными средствами напрямую, например открыть последовательный порт, перезаписать со­ держимое оперативной памяти или нарисовать линию на экране. Подробное рассмот­ рение языка ассемблера не входит в задачи этой книги. Однако кратко познакомиться с этим низкоуровневым миром машинных команд все же будет не лишним. В этом разделе обсуждается лишь та информация, без которой нельзя обойтись при рассмот­ рении материала данной главы. Язык ассемблера является "родным" языком компьютерных систем. При написа­ нии программ на этом языке используются инструкции центрального процессора. При этом разработчик имеет полный доступ к процессору без каких-либо ограниче­ ний и дополнительного кода, без которого нельзя обойтись при использовании высо­коуровневых языков программирования. Вообще, программы на языке ассемблера яв­ ляются более компактными и быстрыми, а также занимают меньший объем памяти по сравнению с аналогичными программами на языках более высокого уровня. Кроме того, такие программы прекрасно подходят для сокрытия ошибок! Регистры общего назначения Любой, кто пробовал скопировать файл размером 2 Мбайт на гибкий диск объе­ мом 1.44 Мбайт, прекрасно знает, что собой представляют байты (или, как минимум, испытывает их недостаток). Байты предназначены для конечных пользователей, по­ скольку на самом деле данные хранятся в битах (двоичных единицах и нулях). В стан­ дартном центральном процессоре байт состоит из 8 битов и позволяет хранить числа от 0 до 255. Хранение битов и выполнение над ними различных операций осуществляется в регистрах центрального процессора. В основном используются регистры четырех ти­ пов: 8-, 16-, 32- и 64-битовые. В предыдущих примерах использовался регистр, размер которого равен 8 бит. Как правило, регистры общего назначения являются 16-битовыми и называются АХ, ВХ, СХ и DX . Все эти регистры могут использоваться без каких бы то ни было огра­ ничений, хотя в различных ситуациях они могут играть определенную роль. До появ­ления процессора 80386 каждый 16-битовый регистр общего назначения состоял из старшей и младшей части, по 8 бит каждая. Таким образом, регистр АХ состоял из час­ тей AL И АН, ВХ - ИЗ з: И ВН, СХ - О И СН, a DX - ИЗ DL И DH . Вот пример регистра АХ, в котором содержится число 25 263. АН 11000101 0101111 Над каждой из восьмибитовых половин регистров операции можно выполнять на­прямую. При этом выполняемые действия будут отражаться на значении регистра в целом. При переходе компьютерной техники к 32-битовому представлению данных регистры также были расширены, чтобы обеспечить согласованность с этим увеличе­ нием разрядности. Так, символ Е используется для представления 32-битового регист­ ра. Конечно, после увеличения разрядности регистров по-прежнему можно работать отдельно с их 8- или 16-битовой частями.

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |