四、编程题(本大题共4小题,每小题7分,共28分) 34.完成下列程序段,从端口210H读数据,测试其是否为20H,若是,则从端口211H中输入一个数据,并将该数据的高四位清零,低四位送BL寄存器,否则程序转到NEXT。 MOV DX,(1)_________ (2)_________ AL,DX (3)_________ AL,20H (4)_________ NEXT MOV DX,(5)_________ (6)_________ AL,DX (7)_________ MOV BL,AL …… NEXT:……… 35.下列程序的功能是将中断号为0CH的中断例程的入口地址送入变量KEEPCS和KEEPIP中保存,(其中KEEPCS中保存该中断例程的段基址,KEEPIP中保存该中断例程入口的偏移地址)请完成该子程序。 KEEPCS DW ? ;保存0CH中断服务程序的段基址 KEEPIP DW ? ;保存0CH中断服务程序入口的偏移地址 READ PROC PUSH AX PUSH ES PUSH BX MOV AL,(1)_________ MOV AH,(2)_________ (3)_________ MOV KEEPCS,(4)_________ MOV KEEPIP,(5)_________ (6)_________ POP ES (7)_________ RET READ ENDP 36.假设82C55的A口工作在方式1输入,采用查询方式(程序控制方式)读取数据,请完成下列查询方式读取数据,并将该数据的低三位送BL寄存器的程序段,设82C55的端口地址为34CH~34FH。 SCAN: MOV DX,(1)_________ (2)_________ TEST AL,(3)_________ (4)_________ SCAN MOV DX,(5)_________ (6)_________;读A口数据 (7)_________;取出低三位 MOV BL,AL 37.设系统外接一片8254,口地址为21CH~21FH,GATE1接+5V,CLK1接入的输入计数脉冲信号为4MHz,要求在OUT1端输出频率是2000Hz的脉冲信号,要求采用二进制计数方式,请完成下列的程序段。 MOV DX,(1)_________ MOV AL,(2)_________ OUT DX,AL ;写控制字 MOV DX,(3)_________ MOV AX,(4)_________ (5)_________ (6)_________ (7)_________ ;写计数初值 来
|