Системное программное обеспечение. Особенности программирования 32-разрядных процессоров. Рощин А.В. - 63 стр.

UptoLike

Составители: 

63
call SetCursorPosition
; Вывести текстовые сообщения на экран
mov CX,5
mov SI,offset Txt1
@@NextString1:
call ShowColorString
loop @@NextString1
mov [TextColorAndBackground],WHITE
mov CX,5
mov SI,offset Txt2
@@NextString2:
call ShowString
loop @@NextString2
; Установить белый цвет символов и черный фон
mov [TextColorAndBackground],WHITE
; Отобразить символы-разделители колонок
mov AL,0B3h
mov [ScreenString],2
mov [ScreenColumn],9
call ShowASCIIChar
mov [ScreenColumn],59
call ShowASCIIChar
mov [ScreenString],3
mov [ScreenColumn],9
call ShowASCIIChar
mov [ScreenColumn],59
call ShowASCIIChar
; Инициализируем переменные
mov [StartAddress],0
mov [CommandByte],0
; ВНЕШНИЙ ЦИКЛ
@@q0: mov EBX,[StartAddress]
mov [ScreenString],4
mov DX,16
@@q1: mov [ScreenColumn],0
; Отобразить линейный адрес первого байта в группе
mov [TextColorAndBackground],YELLOW
mov EAX,EBX
call ShowHexDWord
; Отобразить символ-разделитель колонок
mov [TextColorAndBackground],WHITE
inc [ScreenColumn]
mov AL,0B3h
call ShowASCIIChar
inc [ScreenColumn]
; Отобразить очередную группу байт
; в шестнадцатеричном коде
mov CX,16
mov [TextColorAndBackground],LIGHTGREEN
        call    SetCursorPosition
; Вывести текстовые сообщения на экран
        mov     CX,5
        mov     SI,offset Txt1
@@NextString1:
        call    ShowColorString
        loop    @@NextString1
        mov     [TextColorAndBackground],WHITE
        mov     CX,5
        mov     SI,offset Txt2
@@NextString2:
        call    ShowString
        loop    @@NextString2

; Установить белый цвет символов и черный фон
        mov     [TextColorAndBackground],WHITE
; Отобразить символы-разделители колонок
        mov     AL,0B3h
        mov     [ScreenString],2
        mov     [ScreenColumn],9
        call    ShowASCIIChar
        mov     [ScreenColumn],59
        call    ShowASCIIChar
        mov     [ScreenString],3
        mov     [ScreenColumn],9
        call    ShowASCIIChar
        mov     [ScreenColumn],59
        call    ShowASCIIChar

; Инициализируем переменные
        mov     [StartAddress],0
        mov     [CommandByte],0
; ВНЕШНИЙ ЦИКЛ
@@q0:   mov     EBX,[StartAddress]
        mov     [ScreenString],4
        mov     DX,16
@@q1:   mov     [ScreenColumn],0
; Отобразить линейный адрес первого байта в группе
        mov     [TextColorAndBackground],YELLOW
        mov     EAX,EBX
        call    ShowHexDWord
; Отобразить символ-разделитель колонок
        mov     [TextColorAndBackground],WHITE
        inc     [ScreenColumn]
        mov     AL,0B3h
        call    ShowASCIIChar
        inc     [ScreenColumn]
; Отобразить очередную группу байт
; в шестнадцатеричном коде
        mov     CX,16
        mov     [TextColorAndBackground],LIGHTGREEN


                            63