📄 paracommr.asm
字号:
;*-------------------------------------------------------*/
;* ParaCommR.asm(双机并行通信接口实验-接收端程序) */
;* 并行通信接收程序 Source File */
;* Copyright (c) 2001 by HUST */
;* Modify Date 2005.4.10 */
;*------------------------------------------------------ */
Stack1 segment
dw 200 dup(?)
stack1 ends
data segment
message db'now receiving, please wait ! ' ;系统提示信息
db 0dh,0ah
db'strike "esc" to exit',0dh,0ah,'$'
wait_mes db'send no ready ! if want to exit,please strike ESC',0DH,0AH,'$'
data ends
code segment
assume cs:code,ds:data,ss:stack1
start: mov ax,data
mov ds,ax ;取程序数据段地址
mov ax,stack1
mov ss,ax
main proc near
mov dx,303h ;初始化8255
mov al,10011000b
out dx,al
mov al,00000111b ;置ACK=1
out dx,al
lea dx,message
mov ah,09h ;显示系统提示信息
int 21h
L: mov ah,0bh ;查有任意键按下?
int 21h
cmp al,0
je m2 ;若无,则转查有数据接收?
mov ah,08h
int 21h
cmp al,1bh ;若是ESC键,则退出
jz over
m2: mov dx,302h ;查有数据接收?
in al,dx
and al,80h
jnz l ;若无数据接收,则继续查任意键按下
mov dx,300h ;若有数据接收,则接收1个字符
in al,dx
mov dl,al
mov ah,02h ;显示1个字符
int 21h
mov dx,303h ;发送回答信号ACK
mov al,00000110b
out dx,al
nop
nop
mov al,00000111b
out dx,al
delay1: mov cx,1000
lop: loop lop
jmp L ;继续
over: mov ax,4c00h ;程序退出
int 21h
main endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -