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


         

ñòðåëêà ââåðõ" èìååò êîä


             000A  B8 ---- R                    MOV     AX,VIDEO             ; Àäðåñ ñåãìåíòà VIDEO
             000D  8E C0                        MOV     ES,AX
 
                       Ôèã. 6.12 Ðàñïîëîæåíèå ñåãìåíòà (íà÷àëî)
                                          ASSUME  ES:VIDEO
             000F                   DISPLAY_CAPS:
             000F  B0 18                        MOV     AL,18H         ; Ñèìâîë " ñòðåëêà ââåðõ" èìååò êîä 18H
             0011  F6 06 0017 R 40              TEST    KB_FLAG,CAPS_STATE     ; Îïðåäåëåíèå ñîñòîÿíèÿ êëàâèøè CAPS
             0016  75 02                        JNZ     CAPS_LOCK
             0018  B0 19                        MOV     AL,19H         ; Ñèìâîë "ñòðåëêà âíèç" èìååò êîä 19H
             001A                   CAPS_LOCK:
             001A  26: A2 009E R                MOV     INDICATOR,AL   ; Âûâîä â âåðõíèé ëåâûé óãîë ýêðàíà
             001E  B4 06                        MOV     AH,6           ; Ôóíêöèÿ ÄÎÑ ââîäà ñ êëàâèàòóðû
                                                            ;  è âûâîäà íà äèñïëåé
             0020  B2 FF                        MOV     DL,0FFH        ; Íàïðàâëåíèå - ââîä ñ êëàâèàòóðû
             0022  CD 21                        INT     21H
             0024  3C 00                        CMP     AL,0           ; Ïðîâåðêà íà íàëè÷èå ñèìâîëà
             0026  74 E7                        JZ      DISPLAY_CAPS    ; Íåò ñèìâîëà
             0028  3C 25                        CMP     AL,'%'         ; Ïðîâåðêà íà ñèìâîë êîíöà
             002A  74 08                        JE      RETURN
             002C  B4 02                        MOV     AH,2           ; Ôóíêöèÿ âûâîäà íà äèñïëåé
             002E  8A D0                        MOV     DL,AL          ; Âûâîäèìûé ñèìâîë
             0030  CD 21                        INT     21H
             0032  EB DB                        JMP     DISPLAY_CAPS    ; Ïîâòîðåíèå
             0034                   RETURN:
             0034  CB                     RET               ; Âîçâðàò â ÄÎÑ

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