<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CkUFRHw8eCp7ImA9Wx9bEUw.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291</id><updated>2011-02-19T13:10:15.270+03:00</updated><title>Азы Ассемблера</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;CkUFRHw8cCp7ImA9Wx9bEUw.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-4606867422271586526</id><published>2011-02-19T13:10:00.001+03:00</published><updated>2011-02-19T13:10:15.278+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-19T13:10:15.278+03:00</app:edited><title>Системы счисления</title><content type='html'>Система счисления (СС) – способ именования и изображения чисел с помощью символов,&lt;br /&gt;
имеющие определенные количественные значения.&lt;br /&gt;
В зависимости от способа отображения чисел, СС делятся на:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;позиционные;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;непозиционные.&lt;/li&gt;
&lt;/ul&gt;В позиционных СС количественное значение каждой цифры зависит от ее места (позиции) в&lt;br /&gt;
числе.&lt;br /&gt;
В непозиционных СС цифры не меняют своего количественного значения при изменении их&lt;br /&gt;
расположения в числе.&lt;br /&gt;
Количество (P) различных цифр, используемых для изображения числа в позиционной СС,&lt;br /&gt;
называется основанием СС. Значения цифр лежат в пределах от 0 до P-1.&lt;br /&gt;
В общем случае запись любого смещенного числа в СС с основанием Р будет представляться&lt;br /&gt;
в следующем виде:&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ahwY1U4YuUM/TV-TPSfzQOI/AAAAAAAAABU/bLcDI8etopA/s1600/5.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="19" src="http://2.bp.blogspot.com/-ahwY1U4YuUM/TV-TPSfzQOI/AAAAAAAAABU/bLcDI8etopA/s400/5.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;Нижние индексы определяют местоположение цифры в числе (разряд):&lt;br /&gt;
• положительные значения индексов – для целой части числа (m разрядов);&lt;br /&gt;
• отрицательные значения индексов – для дробной части числа (s разрядов).&lt;br /&gt;
Максимальное целое число, которое может быть представлено в m разрядах:&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-wf28kv0huaw/TV-UReav6eI/AAAAAAAAABY/AC93wGMq6Zg/s1600/6.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-wf28kv0huaw/TV-UReav6eI/AAAAAAAAABY/AC93wGMq6Zg/s1600/6.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;
Минимальное значение, не равное 0 число, которое может быть записано в&lt;br /&gt;
s разрядах дробной части:&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-BCLvcP75fJc/TV-UVgKEnCI/AAAAAAAAABc/1z8HGFucI0k/s1600/7.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;
Двоичная система счисления имеет основание Р=2 и использует для представления&lt;br /&gt;
информации цифры 0 и 1.&lt;br /&gt;
Перевод осуществляется из двоичной СС в десятичную по формуле (*).&lt;br /&gt;
Например:&lt;br /&gt;
5 4 3 2 1 0-1-2-3&lt;br /&gt;
101110.101=25+23+22+21+2-1+2-3=32+8+4+2+0.5+0.125=46.625&lt;br /&gt;
Для перевода из десятичной СС в двоичную формула (*) преобразуется к виду:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-BD8ChIJvCAg/TV-VtLVeuNI/AAAAAAAAABg/89-W3HQOE9M/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-BD8ChIJvCAg/TV-VtLVeuNI/AAAAAAAAABg/89-W3HQOE9M/s1600/8.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
Правило перевода:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Для перевода целой части числа ее, а затем и целые части получающихся частных от деления, следует последовательно делить на основание СС Р до тех пор пока очередная целая часть частного не станет равной 0. Остатки от деления, записанные последовательно снизу вверх, образуют целую часть числа в системе счисления с основанием Р.&lt;/li&gt;
&lt;li&gt;Для перевода дробной части ее, а затем и дробные части получающихся&lt;br /&gt;
произведений, следует последовательно умножать на основание СС Р до тех&lt;br /&gt;
пор, пока очередная дробная часть не окажется равной 0 или не будет&lt;br /&gt;
достигнута нужная точность дроби. Целые части произведений, записанные&lt;br /&gt;
после запятой последовательно сверху вниз, образуют дробную часть числа в&lt;br /&gt;
СС с основанием Р.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-E6zJtf_2le0/TV-WVUnoFeI/AAAAAAAAABo/GT66kSvXR4g/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-E6zJtf_2le0/TV-WVUnoFeI/AAAAAAAAABo/GT66kSvXR4g/s1600/9.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rQ7D9tci0no/TV-WSkUGnNI/AAAAAAAAABk/SdzKcK2gfMc/s1600/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-4606867422271586526?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/4606867422271586526/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_9895.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/4606867422271586526?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/4606867422271586526?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_9895.html' title='Системы счисления'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ahwY1U4YuUM/TV-TPSfzQOI/AAAAAAAAABU/bLcDI8etopA/s72-c/5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUESXs5fip7ImA9Wx9bEUw.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-1636470908947197619</id><published>2011-02-19T13:10:00.000+03:00</published><updated>2011-02-19T13:10:08.526+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-19T13:10:08.526+03:00</app:edited><title></title><content type='html'>Извиняюсь, что отсутствовал пару дней. По итогам голосования решено было написать про двоичную арифметику и представление чисел в памяти, чем я собственно сейчас и занимаюсь.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-1636470908947197619?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/1636470908947197619/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_19.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1636470908947197619?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1636470908947197619?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_19.html' title=''/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkAHSHY5fyp7ImA9Wx9UGUs.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-1275108531062977404</id><published>2011-02-16T20:51:00.001+03:00</published><updated>2011-02-17T19:38:59.827+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-17T19:38:59.827+03:00</app:edited><title></title><content type='html'>Написав о флагах, я подумал что, возможно, некоторые читатели не имеют представления о двоичной арифметике и представлении данных в памяти. Если вы считаете, что стоит осветить эти вопросы, проголосуйте.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-1275108531062977404?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/1275108531062977404/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_16.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1275108531062977404?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1275108531062977404?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_16.html' title=''/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>2</thr:total></entry><entry gd:etag='W/&quot;CEcFQn8zcCp7ImA9Wx9UF00.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-3709214726179192584</id><published>2011-02-14T19:46:00.000+03:00</published><updated>2011-02-14T19:46:53.188+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-14T19:46:53.188+03:00</app:edited><title>Флаги</title><content type='html'>В программе нередко требуется принять решение на основании результата только что исполненной микропроцессором команды. Например, Вам может понадобиться выполнить одни действия, если результат сложения оказался нулем&amp;nbsp; и совсем другие действия в противном случае. &lt;br /&gt;
В 16-битовом регистре флагов фиксируется информация о текущем состоянии дел, которая может помочь Вашей программе принять решение. Шесть битов регистра служат для хранения состояний, а три других могут быть использованы для&amp;nbsp; программного управления режимом работы процессора.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-L0uvDbNI7Ms/TVlcdhmAlhI/AAAAAAAAABE/lcx9JJKrlVQ/s1600/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://4.bp.blogspot.com/-L0uvDbNI7Ms/TVlcdhmAlhI/AAAAAAAAABE/lcx9JJKrlVQ/s320/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Флаги имеют следующие значения:&amp;nbsp;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Бит 0, флаг переноса CF (carry flag), равен 1, если произошел перенос единицы при сложении или заем единицы при вычитании. В противном случае он равен нулю. Кроме того, CF содержит значение бита, который при сдвиге или циклическом сдвиге регистра или ячейки памяти вышел за их границы, и отражает результат операции сравнения. Наконец, служит индикатором результата умножения.&lt;/li&gt;
&lt;li&gt;Бит 2, флаг четности PF (parity flag), равен 1, если в результате операции получено число с четным числом единиц в его битах. В противном случае он равен&amp;nbsp; нулю. Флаг РF в основном используется в операциях обмена данными.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Бит 4, вспомогательный флаг переноса AF (auxiliary carry flag), аналогичен флагу CF, только контролирует перенос или заем для третьего бита данных. &lt;/li&gt;
&lt;li&gt;Бит 6, флаг нуля ZF (zero flag), равен 1, если в результате операции получен нуль; &lt;/li&gt;
&lt;li&gt;Бит 7, флаг знака SF (sign flag), имеет значение только при операциях над числами со знаком. Флаг SF равен 1, если в результате арифметической или логической операции, сдвига или циклического сдвига получено отрицательное число. В противном случае он равен нулю. Иными словами, SF дублирует старший (знаковый) бит результата независимо от того, имеет результат длину 8 или 16 битов.&lt;/li&gt;
&lt;li&gt;Бит 8, флаг трассировки TF (trap flag), разрешает микропроцессору&amp;nbsp; исполнять программу "по шагам" и используется при отладке программ.&lt;/li&gt;
&lt;li&gt;Бит 9, флаг прерывания IF (interrupt enable flag), разрешает микропроцессору&amp;nbsp; реагировать на прерывания от внешних устройств. Сбрасывание IF в нуль заставляет микропроцессор&amp;nbsp; игнорировать прерывания до тех пор, пока IF не станет равным 1.&lt;/li&gt;
&lt;li&gt;Бит 10, флаг направления DF (direction flag), заставляет микропроцессор уменьшать на единицу (DF = 1) или увеличивать на единицу (DF = 0) регистр(ы) индекса после выполнения команды для работы со строками. Если DF = 0, то микропроцессор 8088 будет обрабатывать строку "слева направо" (от младших адресов к старшим). Если DF = 1, то обработка пойдет в обратном направлении (от старших адресов к младшим или справа налево).&lt;/li&gt;
&lt;li&gt;Бит 11, флаг переполнения OF (overflow flag), в первую очередь служит идентификатором ошибки при выполнении операций над числами со знаком. Флаг OF равен 1, если результат сложения двух чисел с одинаковым знаком или результат вычитания двух чисел с противоположными знаками выйдет за пределы допустимого диапазона значений операндов. В противном случае он равен 0. Кроме того, OF = 1, если старший (знаковый) бит операнда изменился в результате операции арифметического сдвига. В противном случае он равен 0. В сочетании с флагом CF флаг OF указывает длину результата умножения. Если старшая половина произведения отлична от нуля, то OF и CF равны 1; в противном случае оба эти флага равны 0. Наконец, OF =0, если частное от деления двух чисел переполняет результирующий регистр.&lt;br /&gt;
&lt;br /&gt;
На рисунке заштрихованы позиции неиспользуемых битов.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-3709214726179192584?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/3709214726179192584/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_5260.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3709214726179192584?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3709214726179192584?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_5260.html' title='Флаги'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-L0uvDbNI7Ms/TVlcdhmAlhI/AAAAAAAAABE/lcx9JJKrlVQ/s72-c/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B9.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry gd:etag='W/&quot;DUQERno-eSp7ImA9Wx9UFkQ.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-7832021985448129770</id><published>2011-02-14T18:28:00.000+03:00</published><updated>2011-02-14T18:28:27.451+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-14T18:28:27.451+03:00</app:edited><title></title><content type='html'>Хоть это и совершенно не относится к теме блога, однако хочу всех поздравить с этим тёплым праздником в холодное время года.&lt;br /&gt;
Чуть позже допишу часть про регистр флагов.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-7832021985448129770?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/7832021985448129770/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_14.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/7832021985448129770?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/7832021985448129770?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_14.html' title=''/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0UGQHczeyp7ImA9Wx9UFk0.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-3859245606454551673</id><published>2011-02-13T15:47:00.000+03:00</published><updated>2011-02-13T15:47:01.983+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-13T15:47:01.983+03:00</app:edited><title></title><content type='html'>Господа, у моего блога много посещений, но это сосем не то, что нужно. Постарайтесь больше спрашивать (ну хотя пока ещё не о чем спрашивать) или можем общаться на отвлечённые темы.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-3859245606454551673?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/3859245606454551673/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_4294.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3859245606454551673?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3859245606454551673?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_4294.html' title=''/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEQESHk9eCp7ImA9Wx9UFUQ.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-2840105575562758707</id><published>2011-02-13T13:15:00.002+03:00</published><updated>2011-02-13T13:18:29.760+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-13T13:18:29.760+03:00</app:edited><title>Внутренние регистры</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;a href="http://1.bp.blogspot.com/-FfTbTmIWQ1c/TVet2HB6puI/AAAAAAAAAA8/e4cbEVp4sho/s1600/1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="267" src="http://1.bp.blogspot.com/-FfTbTmIWQ1c/TVet2HB6puI/AAAAAAAAAA8/e4cbEVp4sho/s320/1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Так как мы занимаемся программированием микропроцессора, то логичнее всего начать эту тему с обсуждения внутренних регистров микропроцессора, доступных для использования. На рисунке показаны три группы регистров данных, и адресов, 16-битовый указатель команд IP&amp;nbsp; и 16-битовый регистр флагов.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Регистры данных&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В зависимости от того, чем Вы оперируете: 16-битовыми словами или 8-битовыми байтами, регистры данных можно рассматривать как четыре 16-битовых или восемь 8-битовых регистров. В первом случае регистры имеют имена АХ, ВХ, СХ, DX. Эти регистры образованы из 8-битовых регистров AL, АН, BL, ВН, CL, СН, DL и DH. Здесь L и Н означают младшие (low) и старшие (high) байты 16-битовых регистров. Например, регистры AL и АН образуют соответственно младший и старший байты регистра АХ.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Регистры сегментов&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; В ЭВМ, сконструированных на базе процессоров&amp;nbsp; 8088, программы и данные хранятся в отдельных областях памяти. Эти области (или сегменты) могут иметь объем до 64 Кбайт. Процессор&amp;nbsp; может иметь дело одновременно с четырьмя сегментами. Начальные адреса этих сегментов содержатся в его четырех регистрах сегментов. Эти регистры выполняют следующие функции:&lt;br /&gt;
&lt;div style="text-align: left;"&gt;-регистр сегмента команд CS (code segment) указывает на сегмент, содержащий текущую исполняемую программу.&lt;/div&gt;&lt;div style="text-align: left;"&gt;-регистр сегмента стека SS (stack segment) указывает на текущий сегмент стека. Стек представляет собой область памяти, используемую для временного хранения данных и адресов.&lt;/div&gt;&lt;div style="text-align: left;"&gt;-регистр сегмента данных DS (data segment) указывает на текущий сегмент данных, обычно содержащий используемые в программе переменные.&lt;/div&gt;&lt;div style="text-align: left;"&gt;-регистр дополнительного сегмента ES (extra segment) указывает на текущий дополнительный сегмент, который используется при выполнении операций над строками.&lt;/div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Регистры указателей и индексов&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Для вычисления адреса команды в сегменте команд микропроцессор извлекает номер блока памяти из регистра CS, а смещение - из регистра IP. Подобным образом за счет выбора номера блока из соответствующего регистра сегмента, а смещения - из другого регистра осуществляется доступ к данным других сегментов. Для доступа к сегменту данных микропроцессор&amp;nbsp; извлекает номер блока из регистра DS, а смещение - из регистра ВХ или индексного регистра (SI или DI). Для доступа к сегменту стека микропроцессор извлекает номер блока из регистра SS, а смещение - из регистра указателя (SP или ВР). Выбирая номер блока из регистра ES, микропроцессор может также получить доступ к дополнительному сегменту.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-2840105575562758707?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/2840105575562758707/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_8192.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/2840105575562758707?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/2840105575562758707?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_8192.html' title='Внутренние регистры'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-FfTbTmIWQ1c/TVet2HB6puI/AAAAAAAAAA8/e4cbEVp4sho/s72-c/1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry gd:etag='W/&quot;C0MMR349eSp7ImA9Wx9UFUQ.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-8629267317987406600</id><published>2011-02-13T13:04:00.000+03:00</published><updated>2011-02-13T13:04:46.061+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-13T13:04:46.061+03:00</app:edited><title></title><content type='html'>Очень удивлён тем, что по моим ссылкам кто-то пришёл и даже отписался. Ну тогда мои усилия не напрасны и стоит попробовать продолжить этот блог. Постараюсь для вас, дорогие читатели.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-8629267317987406600?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/8629267317987406600/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_13.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/8629267317987406600?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/8629267317987406600?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_13.html' title=''/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUAHRHYzfyp7ImA9Wx9UFkQ.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-1796736886347862516</id><published>2011-02-12T15:57:00.002+03:00</published><updated>2011-02-14T18:35:35.887+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-14T18:35:35.887+03:00</app:edited><title>Сегменты и смещения</title><content type='html'>У большинства микропроцессоров адрес ячейки памяти представляет собой одно число. А у микропроцессора 8088 адрес каждой ячейки памяти задается двумя числами: номером блока и смещением. Такой странный метод адресации обусловлен тем, что команды программы для микропроцессора 8088 и ее данные должны располагаться в разных частях памяти, другими словами, в разных сегментах. Если, например, Вам требуется адресоваться к ячейке с данными, то микропроцессору 8088 понадобится адрес блока памяти, с которого начинается сегмент данных (из регистра сегмента данных), и позиция желаемой ячейки в этом сегменте (ее смещение). Вспомните, как ищут в городе чей-нибудь дом: сначала находят улицу (считайте ее сегментом), а затем дом с нужным номером (смещением) на этой улице. К счастью Вам достаточно задавать только смещение, а номер блока микропроцессор&amp;nbsp; выберет сам.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-1796736886347862516?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/1796736886347862516/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_106.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1796736886347862516?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/1796736886347862516?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_106.html' title='Сегменты и смещения'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>4</thr:total></entry><entry gd:etag='W/&quot;D08MRHY-cSp7ImA9Wx9UFU0.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-3220679798462622573</id><published>2011-02-12T13:18:00.000+03:00</published><updated>2011-02-12T13:18:05.859+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-12T13:18:05.859+03:00</app:edited><title>Адресация</title><content type='html'>Ну пока-что заходят только мои знакомые лица, но надеюсь на лучшее.&lt;br /&gt;
&lt;br /&gt;
Так как у микропроцессора 8088 указатель команд и адресные регистры имеют по 1 Кбитов, то можно подумать, что он способен адресоваться к памяти объемом не более 64 Кбайт (65 536 байт), т. е. имеет стандартный для 8-битовых микропроцессоров диапазон адресов. Однако на самом деле микропроцессор 8088 всегда генерирует 20-битовые адреса. Он делает это за счет добавления 16-битового смещения к содержимому регистра сегмента, умноженному на 16. Таким образом:&lt;br /&gt;
&lt;br /&gt;
физический адрес = смещение + 16 • (регистр сегмента)&lt;br /&gt;
&lt;br /&gt;
В действительности, микропроцессор&amp;nbsp; вместо умножения на 16 использует содержимое регистр сегмента так, как если бы оно имело четыре дополнительных нулевых бита&lt;br /&gt;
&lt;br /&gt;
Добавление нулей аналогично умножению, поскольку при каждом сдвиге на одну позицию влево двоичное число удваивается. Следовательно, перемещение значения регистра сегмента на четыре позиции влево умножает его на16:2*2*2*2=16.&lt;br /&gt;
&lt;br /&gt;
Например, если смешение адреса имеет значение 10Н, где суффикс Н обозначает шестнадцатеричное число, а регистр сегмента содержит 2000Н, то микропроцессор произведет вычисление физического адреса следующим образом (операнды показаны в двоичном виде):&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000 0000 0001 0000 (смещение) &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;+ 0010 0000 0000 0000 0000 (номер блока) &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0010 0000 0000 0001 0000 (физический адрес).&lt;br /&gt;
&lt;br /&gt;
Следовательно, мы получим 20-битовый адрес ячейки памяти 20010Н.&lt;br /&gt;
&lt;br /&gt;
Имея в своем распоряжении 20-битовый адрес, микропроцессор 8088 может получить доступ к любому из 1 048 576 байт. (Данное значение называется "мегабайт" (Мбайт); 1 Мбайт = 1024 Кбайт.) Это в 16 раз превышает диапазон адресов микропроцессора 8088!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-3220679798462622573?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/3220679798462622573/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_12.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3220679798462622573?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3220679798462622573?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_12.html' title='Адресация'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;DEIEQXo7fip7ImA9Wx9UFEk.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-7943352457811812827</id><published>2011-02-11T20:48:00.000+03:00</published><updated>2011-02-11T20:48:20.406+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-11T20:48:20.406+03:00</app:edited><title>Указатели команд</title><content type='html'>Большинство микропроцессоров выполняют программу следующим образом: извлекают из памяти очередную команду, исполняют ее, затем извлекают следующую команду и т. д. Этот подход, естественно, приводит к простоям, так как микропроцессор должен перед исполнением команды подождать ее извлечения из памяти.&lt;br /&gt;
Одна из них, интерфейс шины (Bus Interface Unit), извлекает команды из памяти и осуществляет передачу данных между исполнительными компонентами и "внешним миром". Другая компонента, операционный блок (Execution Unit), только исполняет команды. Так как эти компоненты независимы, то интерфейс шины может извлекать новую команду из памяти в то самое время, когда операционный блок исполняет ранее извлеченную команду. &lt;br /&gt;
&lt;br /&gt;
Как только интерфейс шины извлекает команду, он передает ее на конвейер микропроцессора. Так как интерфейс шины не знает порядка исполнения команд программы, то ом всегда извлекает команды с последовательно возрастающими адресами. Операционному блоку приходится ждать извлечения команды из памяти только в тех случаях, когда в программе управление передается не следующей команде, а какой-то другой. &lt;br /&gt;
&lt;br /&gt;
Указатель команд (IP - instruction pointer). Так как регистр IP имеет столь специфическое назначение, то Вы не можете выполнять арифметические операции над его содержимым. Однако микропроцессор&amp;nbsp; имеет команды, одни из которых изменяют содержимое регистра IP, а другие помещают его в стек и извлекают обратно.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-7943352457811812827?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/7943352457811812827/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_11.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/7943352457811812827?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/7943352457811812827?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post_11.html' title='Указатели команд'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>3</thr:total></entry><entry gd:etag='W/&quot;DEcDQ3c6fCp7ImA9Wx9UFEk.&quot;'><id>tag:blogger.com,1999:blog-2769035446478660291.post-3933003043391509558</id><published>2011-02-11T20:41:00.000+03:00</published><updated>2011-02-11T20:41:12.914+03:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-02-11T20:41:12.914+03:00</app:edited><title>Ну чтож, начнём.</title><content type='html'>В этом бложике хочу попробовать возбудить интерес людей к языкам Ассамблера.&lt;br /&gt;
Поскольку я только студент, попрошу не кидать сразу камнями, а помочь конструктивной критикой.&lt;br /&gt;
Сначала я хотел сразу начать с 64-разрядного ассамблера, но всё же решил начать с самых азов.&lt;br /&gt;
&lt;br /&gt;
Итак, начнём со старого-старого tasm'a.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2769035446478660291-3933003043391509558?l=kostpech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kostpech.blogspot.com/feeds/3933003043391509558/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3933003043391509558?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2769035446478660291/posts/default/3933003043391509558?v=2'/><link rel='alternate' type='text/html' href='http://kostpech.blogspot.com/2011/02/blog-post.html' title='Ну чтож, начнём.'/><author><name>KostPech</name><uri>http://www.blogger.com/profile/07810589639216747427</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='09925931227682083681'/></author><thr:total>2</thr:total></entry></feed>