КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - Турбо С: руководство пользователя. Часть 2 - Стр. 38

Индекс материала
Турбо С: руководство пользователя. Часть 2
Стр. 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
Все страницы
     значение для любого определенного макроса равно 1.                         
                                                                                
     _TINY_       Опция выбора крохотной модели памяти                          
                                                                                
     _SMALL_      Опция выбора малой модели памяти                              
                                                                                
     _MEDIUM_     Опция выбора средней модели памяти                            
                                                                                
     _COMPACT_    Опция выбора компактной модели памяти                         
                                                                                
     _LARGE_      Опция выбора большой модели памяти                            
                                                                                
     _HUGE_       Опция выбора огромной модели памяти                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          Анахронизмы (K&R 17)                                                  
     -----------------------------------------------------------------          
                                                                                
          Никаких из  упомянутых  в K&R анахронизмов в Турбо Си не су-          
     ществует.                                                                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 311,312 -
                                                                                
                           Г Л А В А  12                                        
                           -------------                                        
                                                                                
                   УГЛУБЛЕННЫЙ КУРС ПО ТУРБО СИ                                 
     -----------------------------------------------------------------          
                                                                                
          Рады видеть вас здесь.                                                
                                                                                
          Эта глава охватывает три основные темы. Во-первых, рассказы-          
     вает о моделях памяти - от крохотной до огромной. Далее - о выбо-          
     ре нужной модели, исходя из конкретной задачи. Затем - о  возмож-          
     ности  смешивания языков программирования. Вы с этим уже частично          
     знакомы по Главе 10, которая объясняет связь  Турбо  Си  с  Турбо          
     Прологом.  Здесь же рассматривается смешивание с другими языками,          
     включая Паскаль и ассемблер.  После чего предлагается три аспекта          
     низкоуровневого программирования на Турбо Си:  встроенный код ас-          
     семблера,  псевдопеременные и обработка прерываний.  В заключение          
     рассмотрены  особенности  работы  с  числами  с плавающей точкой.          
     Итак, начнем.                                                              
                                                                                
                                                                                
                                                                                
                                                                                
               Модели памяти                                                    
     -----------------------------------------------------------------          
                                                                                
          Что  такое  модели памяти, почему вас должен беспокоить этот          
     вопрос? Для того чтобы ответить на него, вы  должны  разобраться,          
     на какой вычислительной установке работаете. Ее основной вычисли-          
     тельной  единицей должен быть микропроцессор (CPU), принадлежащий          
     к семейству Intel iAPX86, т.е. 8086, 8088, 80186, 80286. Далее мы          
     будем рассматривать 8086.                                                  
                                                                                
                                                                                
                                                                                
          Регистры микропроцессора 8086.                                        
     -----------------------------------------------------------------          
                                                                                
              Регистры общего назначения                                        
                                                                                
                ЙНННННННННЛННННННННН»                                           
            AX  є   AH    є   AL    є Аккумулятор                               
                МНННННННННОННННННННН№                                           
            BX  є   BH    є   BL    є База                                      
                МНННННННННОННННННННН№                                           

                         - 313,314 -
                                                                                
                                                                                
            CX  є   CH    є   CL    є Счетчик                                   
                МНННННННННОННННННННН№                                           
            DX  є   DH    є   DL    є Данные                                    
                ИНННННННННКНННННННННј                                           
                                                                                
                                                                                
                                                                                
                                                                                

                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
            Сегментные адресные регистры                                        
                                                                                
                ЙННННННННННННННННННН»                                           
            CS  є                   є Сегмент кода                              
                МННННННННННННННННННН№                                           
            DS  є                   є Сегмент данных                            
                МННННННННННННННННННН№                                           
            SS  є                   є Сегмент стека                             
                МННННННННННННННННННН№                                           
            ES  є                   є Дополнительный сегмент                    
                ИНННННННННННННННННННј        (данных)                           
                                                                                
                Cпециальные регистры                                            
                                                                                
                ЙННННННННННННННННННН»                                           
            SP  є                   є Указатель стека                           
                МННННННННННННННННННН№                                           
            BP  є                   є Указатель базы                            
                МННННННННННННННННННН№                                           
            SI  є                   є Индекс источника                          
                МННННННННННННННННННН№                                           
            DI  є                   є Индекс получателя                         

                         - 315,316 -
                                                                                
                                                                                
                ИНННННННННННННННННННј                                           
                                                                                
                  Рис. 12.1. Регистры 8086.                                     
                                                                                
          На  рис.12.1 показаны регистры микропроцессора 8086 с крат-           
     ким описанием назначения каждого из них. Есть еще 2 регистра: IP           
     (программный счетчик) и регистр флажков, но Турбо Си не имеет  к           
     ним доступа, поэтому они здесь не показаны.                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
               Регистры общего назначения.                                      
     -----------------------------------------------------------------          
                                                                                
          Регистры общего назначения чаще всего используют для  хране-          
     ния и обработки данных. Каждый из них имеет некоторые специальные          
     функции, которые выполняет только он. Например:                            
                                                                                
          - многие математические операции могут быть выполнены только          
            с использованием AX;                                                
          - BX может быть использован для хранения смещения в  удален-          
            ном указателе (far-указателе);                                      
          - CX используется в некоторых командах  цикла микропроцессо-          
            ра 8086 (LOOP-командах);                                            
          - DX используется определенными командами для хранения  дан-          
            ных.                                                                
                                                                                
          Но имеется много операций,  в которых участвуют все эти  ре-          
     гистры;  в этих случаях вы можете свободно выбирать любой из них.          
                                                                                
                                                                                
                                                                                
                                                                                

                         - 317,318 -
                                                                                
               Сегментные регистры.                                             
     -----------------------------------------------------------------          
                                                                                
          Cегментные регистры  содержат  начальный  адрес каждого из 4          
     сегментов. Как  описано в следующем разделе, для того чтобы полу-          
     чить правильный 20-битный адрес этого сегмента, 16-битная величи-          
     на в сегментном регистре сдвигается влево на 4  бита  (умножается          
     на 16).                                                                    
                                                                                
                                                                                
                                                                                
               Регистры специального назначения.                                
     -----------------------------------------------------------------          
                                                                                
          Микропроцессор 8086  также  имеет несколько регистров специ-          
     ального назначения: