答案已发,请查收!
在做题目的时候我用了以下假设
8255端口地址分配
PA:360H PB:361H PC :362H 控制寄存器:363H
第一题:
STACK SEGMENT
DB 256 DUP(?)
STACK ENDS
DATA SEGMENT
M DB 21H,87H,63H,25H ;这是要打印的数据,可以修改
E DB 4 ; 这是打印数据的个数,根据M而改变
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AH,E ;数据区长度
ADD AH,1
MOV SI, OFFSET M
SUB SI,1
MOV AL,81H ;设定8255工作字
MOV DX,363H
OUT DX,AL
LP2: MOV DX,362H ;读取打印机状态
LP1: IN AL,DX
CMP AL,4
JNE LP1
DEC AH
JZ EXIT
INC SI
MOV AL,[SI]
MOV DX,361H
OUT DX,AL
MOV AL,0EH ;打印数据
MOV DX,363H
OUT DX,AL
MOV AL,0FH
MOV DX,363H
OUT DX,AL
JMP LP2 ;查询,未完则继续
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
第二题:
STACK SEGMENT
DB 256 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK
START: MOV AX,STACK
MOV SS,AX
MOV CX,0FFFH
MOV DX,363H
MOV AL,80H
OUT DX,AL
MOV DX,361H
MOV AL,0DH
OUT DX,AL
LP: LOOP LP
MOV DX,362H
MOV AL,80H
OUT DX,AL
XOR AL.AL
IN AL,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
不一定正确,但是这绝对是我认真做的。
以后多交流吧》
沙发。都没人说!,我占去一楼