
SSEG SEGMENT PARA STACK堆栈段定义
DW 30H DUP(?)
SSEG ENDS
CSEG SEGMENT代码段定义
ASSUME CS:CSEG,DS:CSEG,SS:SSEG 内存段分配
ORG 100H 主程序首址
START: MOV AL,99H 方式控制字,方式0,A口入,B口出,C口入
OUT 23H,AL 方式控制字送入方式控制寄存器
IN AL,20H从A口读入数据
OUT 21H,AL 向B口输出数据
CMP AL,80H 将A口读入的数据与80H比较
JGE SetPc2 若读入的据>=80H, 准备将PC2置1
ClrPc2: IN AL,22H 读入C口当前状态
AND AL,11111011B 若A口读入的数据<80H,准备将PC2清0复位
MOV DL,AL 将AL的值暂存于DL
JMP PcOut 转跳至C口输出程序入口
SetPc2: IN AL,22H 读入C口当前状态
OR AL,00000100B 准备将PC2位置1
MOV DL,AL 将AL的值暂存于DL
PcOut: MOV AL,90H 方式控制字,方式0,A口入,B口出,C口出
OUT 23H,AL 方式控制字送入方式控制寄存器
MOV AL,DL 将暂存于DL的值回送到AL
OUT 22H,AL C口输出
JMP START 循环
CSEG ENDS 代码段定义完毕
END START 主程序结束
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)