Помощь - Поиск - Пользователи - Календарь
Полная версия: Дамп памяти Bios
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
dron4ik
Всем привет. Программа выводит область памяти биоса(работает верно) незнаю как сделать выход из программы при нажатии на клавишу esc..подскажите пожалуйста кто знает.

codesg  segment para 'code'
assume cs:codesg,ds:codesg,ss:codesg,es:codesg
org 100h
begin: jmp main
tabl db '0123456789ABCDEF'
main proc near
mov cx,25000
mov ax, 0
mov es, ax

m3: push cx
mov ah,02
mov bh,00
mov dh,0
mov dl,0
int 10h
mov si,0400h
mov cx,16
m2: push cx
mov cx,16
m1: push cx
lea bx,tabl
mov al,es:[si]
and al,0f0h
shr al,4
xlat
mov ah,09h
mov bh,00
mov bl,07h
mov cx,1
int 10h
mov ah,03
mov bh,00
int 10h
inc dl
mov ah,02h
mov bh,00
int 10h
lea bx,tabl
mov al,es:[si]
and al,0fh
xlat
mov ah,09h
mov bh,00
mov bl,07h
mov cx,1
int 10h
mov ah,03
mov bh,00
int 10h
inc dl
mov ah,02h
mov bh,00
int 10h
mov ah,09h
mov al,' '
mov bh,00
mov bl,07h
mov cx,1
int 10h
mov ah,02h
mov bh,00
inc dl
int 10h
inc si
pop cx
loop m1
mov ah,03
mov bh,00
int 10h
mov ah,02
mov bh,00
inc dh
mov dl,0
int 10h
pop cx
loop m2
pop cx
dec cx
cmp cx,0
je ex

mov ah, 0
add dx, 91
int 1Ah
add dx, 91
mov bx, dx
repeat: int 1Ah
cmp dx, bx
jne repeat

jmp m3
ex: ret
main endp
codesg ends
end begin
xds
Перед выходом:
pause:
mov ah,8
int 21h
cmp al,27
jne pause


Не, все хуже.
xds
        add dx, 91
mov bx, dx
repeat:
;------------------------------
mov ah,1
int 16h
jz no_key
xor ax,ax
int 16h
cmp al,27
je ex
jmp repeat
no_key:
xor ax,ax
int 1Ah
cmp dx, bx
jb repeat
;------------------------------
jmp m3
ex: ret

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.