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

UptoLike

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

64
@@q2: mov AL,[GS:EBX]
call ShowByteHexCode
inc [ScreenColumn]
inc EBX
loop @@q2
; Отобразить символ-разделитель колонок
mov [TextColorAndBackground],WHITE
mov AL,0B3h
call ShowASCIIChar
inc [ScreenColumn]
; Вернуться назад на 16 символов
sub EBX,16
; Отобразить очередную группу байт в кодах ASCII
mov CX,16
mov [TextColorAndBackground],LIGHTCYAN
@@q3: mov AL,[GS:EBX]
call ShowASCIIChar
inc EBX
loop @@q3
inc [ScreenString]
dec DX
jnz @@q1
; Ожидать нажатия любой клавиши
call GetAddressOrCommand
cmp [CommandByte],F10
jne @@q0
@@End: ; Установить текстовый режим
mov ax,3
int 10h
; Выход в DOS
mov AH,4Ch
int 21h
ENDP MemoryDump
;******************************************************
;* ВЫВОД БАЙТА НА ЭКРАН В КОДЕ ASCII *
;* Подпрограмма выводит содержимое регистра AL в коде *
;* ASCII в указанную позицию экрана. *
;* Координаты позиции передаются через глобальные *
;* переменные ScreenString и ScreenColumn. После *
;* выполнения операции вывода происходит автомати- *
;* ческое приращение значений этих переменных. *
;******************************************************
PROC ShowASCIIChar near
pusha
push DS
push ES
mov DI,DGROUP
@@q2:   mov     AL,[GS:EBX]
        call    ShowByteHexCode
        inc     [ScreenColumn]
        inc     EBX
        loop    @@q2
; Отобразить символ-разделитель колонок
        mov     [TextColorAndBackground],WHITE
        mov     AL,0B3h
        call    ShowASCIIChar
        inc     [ScreenColumn]
        ; Вернуться назад на 16 символов
        sub     EBX,16
; Отобразить очередную группу байт в кодах ASCII
        mov     CX,16
        mov     [TextColorAndBackground],LIGHTCYAN
@@q3:   mov     AL,[GS:EBX]
        call    ShowASCIIChar
        inc     EBX
        loop    @@q3
        inc     [ScreenString]
        dec     DX
        jnz     @@q1

        ; Ожидать нажатия любой клавиши
        call    GetAddressOrCommand
        cmp     [CommandByte],F10
        jne     @@q0

@@End: ; Установить текстовый режим
mov     ax,3
int     10h
; Выход в DOS
mov     AH,4Ch
int     21h
ENDP MemoryDump


;******************************************************
;*          ВЫВОД БАЙТА НА ЭКРАН В КОДЕ ASCII         *
;* Подпрограмма выводит содержимое регистра AL в коде *
;* ASCII в указанную позицию экрана.                  *
;* Координаты позиции передаются через глобальные     *
;* переменные ScreenString и ScreenColumn. После      *
;* выполнения операции вывода происходит автомати-    *
;* ческое приращение значений этих переменных.        *
;******************************************************
PROC ShowASCIIChar near
        pusha
        push     DS
        push     ES
        mov      DI,DGROUP


                            64