Assembler äëÿ íà÷èíàþùèõ


         

Òåêñòîâûé ðåæèì - ÷àñòü 9


                                                                 ; öâåòíîãî äèñïëåÿ
            003B                   WAIT_NO_RETRACE:
            003B  EC                           IN      AL, DX                ; Ïðîâåðêà íà îáðàòíûé õîä ëó÷à
            003C  A8 01                  TEST    AL, 1
            003E  75 FB                  JNZ     WAIT_NO_RETRACE       ; Çàïðåùåíèå ïðåðûâàíèé
            0040  FA                           CLI
            0041                   WAIT_RETRACE:
            0041  EC                           IN      AL, DX
            0042  A8 01                  TEST    AL, 1
            0044  74 FB                  JZ      WAIT_RETRACE          ; Îæèäàíèå îáðàòíîãî õîäà ëó÷à
            0046  8B C3                  MOV     AX, BX                ; Âûáîðêà ñèìâîëà
            0048  AB                           STOSW                   ; Çàíåñåíèå â äèñïëåéíûé áóôåð
            0049  FB                           STI                     ; Ðàçðåøåíèå ïðåðûâàíèé
            004A  E2 EF                  LOOP    WAIT_NO_RETRACE
            004C  FE C3                  INC     BL
            004E  75 E2                  JNZ     NEXT_CHAR_1
 
                                   ;-----  Ôèã. 8.12 (â) Âûâîä ëèíèè ïî äèàãîíàëè
 
                  Ôèã. 8.12 Ïðîãðàììà óïðàâëåíèÿ öâåòíûì äèñïëååì (ïðîäîëæåíèå)
            0050  B8 0004                      MOV     AX, 4
            0053  CD 10                  INT     10H             ; Óñòàíîâêà ãðàôè÷åñêîãî
                                                                 ;      ðåæèìà 320*200
            0055  06                           PUSH    ES
            0056  1F                           POP     DS
            0057  B3 32                  MOV     BL, 50                ; ×èñëî ãðóïï ñòðîê
            0059  B1 02                  MOV     CL, 2                 ; Ñ÷åò÷èê ñäâèãà
            005B  BF 0000                      MOV     DI, 0
            005E                   DOT_LOOP:
            005E  B0 C0                  MOV     AL, 0C0H              ;  AL ìàñêà ïåðâîé òî÷êè â áàéòå



Ñîäåðæàíèå  Íàçàä  Âïåðåä