例:设8254的口地址为40H ~ 43H,要求2#计数器工作在方式3,计数初值=4000,写出2#的初始化程序段。
解1:
设初值为2进制,初值写入顺序为先低8位后高8位
MOV AL, 10110110B
OUT 43H, AL
MOV AX, 4000
OUT 42H, AL
MOV AL, AH
OUT 42H, AL
解2:
设初值为2进制,写入顺序为仅写高8位
MOV AL, 10100110B
OUT 43H, AL
MOV AL, 40
OUT 42H, AL
注意:解2是错误的,因为4000=0FA0H,其低8位不等于0。
解3:
设初值为BCD码,写入顺序为先低后高
MOV AL, 10110111B
OUT 43H, AL
MOV AL, 0
OUT 42H, AL
MOV AL, 40H
OUT 42H, AL
解4:
设初值为BCD码,仅写高8位
MOV AL, 10100111B
OUT 43H, AL
MOV AL, 40H
OUT 42H, AL
注意:4000的BCD码数应写成4000H,解3、解4是正确的。
程序中如何表示BCD码数?
设初值 = (