Аппаратное обеспечение IBM PC



         

Примеры программ - часть 7


call cs:[HMMEntry] or ax, ax jnz move1emb_ok jmp error

move1emb_ok:

mov ah, 9h mov dx, OFFSET okmsg int 21h

; Выводим скопированное сообщение на экран ; для проверки

mov ah, 9h mov dx, OFFSET testbuf int 21h

; Освобождаем блок EMB

mov ah, 9h mov dx, OFFSET freeEMBmsg int 21h

mov ax,0A00h mov dx,EMBHandle

call cs:[HMMEntry] or ax, ax jnz freeemb_ok jmp error

freeemb_ok:

mov EMBHandle, dx

mov ah, 9h mov dx, OFFSET okmsg int 21h

jmp terminate

error: push bx

mov ah, 9h mov dx, OFFSET errmsg int 21h

pop ax call Print_word

terminate:

.EXIT 0

; Вывод на экран содержимого регистра AX

Print_word proc near ;-------------------- push ax push bx push dx ; push ax mov cl,8 rol ax,cl call Byte_to_hex mov bx,dx @@out_ch bh @@out_ch bl ; pop ax call Byte_to_hex mov bx,dx @@out_ch bh @@out_ch bl ; pop dx pop bx pop ax ret Print_word endp ; Byte_to_hex proc near ;-------------------- ; al - input byte ; dx - output hex ;-------------------- push ds push cx push bx ; lea bx,tabl mov dx,cs mov ds,dx ; push ax and al,0fh xlat mov dl,al ; pop ax mov cl,4 shr al,cl xlat mov dh,al ; pop bx pop cx pop ds ret ; tabl db '0123456789ABCDEF' Byte_to_hex endp

END




Содержание  Назад  Вперед