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


         

or ax, ax jnz move1emb_ok


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

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